|
@@ -0,0 +1,3810 @@
|
|
|
+package com.rf.psychological.scale.rest;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.rf.psychological.base.rest.BaseController;
|
|
|
+import com.rf.psychological.dao.cognizeModel.*;
|
|
|
+import com.rf.psychological.dao.model.*;
|
|
|
+import com.rf.psychological.file.excel.ExcelBean;
|
|
|
+import com.rf.psychological.opLog.annotation.OperationLogAnnotation;
|
|
|
+import com.rf.psychological.plan.dao.model.TestPlanEntity;
|
|
|
+import com.rf.psychological.plan.service.TestPlanContendService;
|
|
|
+import com.rf.psychological.plan.service.TestPlanService;
|
|
|
+import com.rf.psychological.plan.service.TestPlanUserService;
|
|
|
+import com.rf.psychological.rest.ServerController;
|
|
|
+import com.rf.psychological.scale.dao.model.UserRecordEntity;
|
|
|
+import com.rf.psychological.security.AesEncryptUtils;
|
|
|
+import com.rf.psychological.security.SafetyProcess;
|
|
|
+import com.rf.psychological.scale.service.CognitiveTaskService;
|
|
|
+import com.rf.psychological.scale.service.UserRecordService;
|
|
|
+import com.rf.psychological.user.dao.model.UserEntity;
|
|
|
+import com.rf.psychological.user.service.UserService;
|
|
|
+import com.rf.psychological.socket.MyClient;
|
|
|
+import com.rf.psychological.utils.*;
|
|
|
+import com.rf.psychological.file.excel.ExcelClass;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import java.io.File;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zzf
|
|
|
+ * @description:接收测试结果--认知任务
|
|
|
+ * @date 2021/1/29 10:30
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@RestController
|
|
|
+@RequestMapping("/cognize")
|
|
|
+@Api(tags = "认知任务测评结果计算")
|
|
|
+public class CognizeResultController extends BaseController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserRecordService userRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CognitiveTaskService cognitiveTaskService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TestPlanContendService testPlanContendService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TestPlanUserService testPlanUserService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TestPlanService testPlanService;
|
|
|
+
|
|
|
+ @SafetyProcess
|
|
|
+ @OperationLogAnnotation("认知任务测评结果保存")
|
|
|
+ @ApiOperation(value = "type:认知任务标志,jsonObject:测试结果")
|
|
|
+ @PostMapping("/{type}")
|
|
|
+ public Result completeTest(@PathVariable String type, @RequestBody String json) throws Exception {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(AesEncryptUtils.decrypt(JSONObject.parseObject(json).getString("data")));
|
|
|
+ String testPlanId = null;
|
|
|
+ UserEntity userEntity = this.userService.getOne(jsonObject.getString("userId"));
|
|
|
+ String userName = userEntity.getPetName();
|
|
|
+ String userBirthday = userEntity.getBirthday();
|
|
|
+ String userSex = userEntity.getGender();
|
|
|
+ String phone = userEntity.getPhone();
|
|
|
+ String institutionNo = userEntity.getInstitutionNo();
|
|
|
+ if (userSex.equals("0")) {
|
|
|
+ userSex = "男";
|
|
|
+ } else {
|
|
|
+ userSex = "女";
|
|
|
+ }
|
|
|
+ if(userEntity == null){
|
|
|
+ return fail("用户不存在");
|
|
|
+ }
|
|
|
+ if (jsonObject.containsKey("testPlanId") && StringUtils.isNotBlank(jsonObject.getString("testPlanId"))) {
|
|
|
+ testPlanId = jsonObject.getString("testPlanId");
|
|
|
+ TestPlanEntity testPlanEntity = this.testPlanService.findById(testPlanId);
|
|
|
+ if(testPlanEntity == null ){
|
|
|
+ return fail("测试计划不存在");
|
|
|
+ }
|
|
|
+ if(testPlanEntity.getStatus() == Constant.TEST_PLAN_STATUS_UNSTART)
|
|
|
+ return fail("测试计划尚未开始");
|
|
|
+ if(testPlanEntity.getStatus() < Constant.TEST_PLAN_STATUS_UNSTART)
|
|
|
+ return fail("测试计划已结束");
|
|
|
+ UserRecordEntity checkTestPlanId = userRecordService.findByPhoneAndTestPlanIdAndInstitution(institutionNo, phone, testPlanId, type);
|
|
|
+ if (checkTestPlanId != null) {
|
|
|
+ return fail("", "该测试已完成");
|
|
|
+ }
|
|
|
+ WebScaleResultController.updateUserPlanStatus(testPlanId,institutionNo,phone,type,userEntity.getInstitutionNo(),testPlanContendService,testPlanUserService);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String testTime = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒").format(new Date());
|
|
|
+ if (jsonObject.containsKey("startTime")) {
|
|
|
+ testTime = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒").format(jsonObject.getDate("startTime"));
|
|
|
+ }
|
|
|
+ String fileName = userName + Constant.SPLIT_CHAR + userBirthday + Constant.SPLIT_CHAR + userSex + Constant.SPLIT_CHAR + testTime;
|
|
|
+ String datas = null;
|
|
|
+ String name;
|
|
|
+ String testResult = "";
|
|
|
+ String b64Img = "";
|
|
|
+ List<Map<String, String>> resultMapList = new ArrayList<>();
|
|
|
+ // 创建返回的json对象
|
|
|
+ JSONObject resultJson = new JSONObject(true);
|
|
|
+ resultJson.put("测试结果指导", "");
|
|
|
+ // 创建入库的json对象
|
|
|
+ JSONObject resultDBJson = new JSONObject(true);
|
|
|
+ resultDBJson.put("测试结果指导", "");
|
|
|
+ //瑞文测试
|
|
|
+ if (Constant.QUEST_TYPE_RIVEN.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ int score = jsonObject.getInteger("userScore");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_RIVEN + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_RIVEN;
|
|
|
+ int resultScore = RIVENScore(userBirthday, score);
|
|
|
+
|
|
|
+ resultDBJson.put("versionNo", "2.0.1");
|
|
|
+ resultJson.put("versionNo", "2.0.1");
|
|
|
+ //知觉辨别能力得分
|
|
|
+ int A = 0;
|
|
|
+ //雷同比较能力得分
|
|
|
+ int B = 0;
|
|
|
+ //比较推理能力得分
|
|
|
+ int C = 0;
|
|
|
+ //系列关系能力得分
|
|
|
+ int D = 0;
|
|
|
+ //抽象推理能力得分
|
|
|
+ int E = 0;
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject jsonObject1 = jsonArray.getJSONObject(i);
|
|
|
+ if (i <= 11){
|
|
|
+ A += Integer.valueOf(jsonObject1.getInteger("score"));
|
|
|
+ }else if (i >= 12 && i <= 23){
|
|
|
+ B += Integer.valueOf(jsonObject1.getInteger("score"));
|
|
|
+ }else if (i >= 24&& i <= 35){
|
|
|
+ C += Integer.valueOf(jsonObject1.getInteger("score"));
|
|
|
+ }else if (i >= 36 && i <= 47){
|
|
|
+ D += Integer.valueOf(jsonObject1.getInteger("score"));
|
|
|
+ }else {
|
|
|
+ E += Integer.valueOf(jsonObject1.getInteger("score"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //总分模块
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScoreObject = new JSONObject(true);
|
|
|
+ totalScoreObject.put("totalScore",score);
|
|
|
+ if (resultScore < 5) {
|
|
|
+ totalScoreObject.put("totalScoreDesc","智力水平低下");
|
|
|
+ } else if (resultScore >= 5 && resultScore <= 24) {
|
|
|
+ totalScoreObject.put("totalScoreDesc","智力水平中下");
|
|
|
+ } else if (resultScore >= 25 && resultScore <= 74) {
|
|
|
+ totalScoreObject.put("totalScoreDesc","智力水平中等");
|
|
|
+ } else if (resultScore >= 75 && resultScore <= 94) {
|
|
|
+ totalScoreObject.put("totalScoreDesc","智力水平良好");
|
|
|
+ } else {
|
|
|
+ totalScoreObject.put("totalScoreDesc","智力水平优秀");
|
|
|
+ }
|
|
|
+
|
|
|
+ totalScores.add(totalScoreObject);
|
|
|
+ resultDBJson.put("totalScore", totalScores);
|
|
|
+ resultJson.put("totalScore", totalScores);
|
|
|
+
|
|
|
+ //分数,雷达图及表格数据
|
|
|
+ /*JSONArray scoreMmoduleS = new JSONArray();
|
|
|
+ JSONObject scoreMmoduleObject = new JSONObject(true);
|
|
|
+ JSONArray groupData = new JSONArray();
|
|
|
+ JSONObject groupDataA = new JSONObject(true);
|
|
|
+ groupDataA.put("name","知觉辨别能力");
|
|
|
+ groupDataA.put("value",A);
|
|
|
+ groupData.add(groupDataA);
|
|
|
+ JSONObject groupDataB = new JSONObject(true);
|
|
|
+ groupDataB.put("name","雷同比较能力");
|
|
|
+ groupDataB.put("value",B);
|
|
|
+ groupData.add(groupDataB);
|
|
|
+ JSONObject groupDataC = new JSONObject(true);
|
|
|
+ groupDataC.put("name","比较推理能力");
|
|
|
+ groupDataC.put("value",C);
|
|
|
+ groupData.add(groupDataC);
|
|
|
+ JSONObject groupDataD = new JSONObject(true);
|
|
|
+ groupDataD.put("name","系列关系能力");
|
|
|
+ groupDataD.put("value",D);
|
|
|
+ groupData.add(groupDataD);
|
|
|
+ JSONObject groupDataE = new JSONObject(true);
|
|
|
+ groupDataE.put("name","抽象推理能力");
|
|
|
+ groupDataE.put("value",E);
|
|
|
+ groupData.add(groupDataE);
|
|
|
+ scoreMmoduleObject.put("groupName","第一组");
|
|
|
+ scoreMmoduleObject.put("groupData",groupData);
|
|
|
+ scoreMmoduleS.add(scoreMmoduleObject);
|
|
|
+ resultDBJson.put("score", scoreMmoduleS);
|
|
|
+ resultJson.put("score", scoreMmoduleS);*/
|
|
|
+
|
|
|
+ //维度得分及解读模块
|
|
|
+ JSONArray dimensions = new JSONArray();
|
|
|
+ JSONObject scoreA = new JSONObject(true);
|
|
|
+ scoreA.put("name","知觉辨别能力");
|
|
|
+ scoreA.put("score",A);
|
|
|
+ scoreA.put("Describe","知觉辨认能力是指对外界感官信息做出整体性辨别的能力,比如万花丛中一点绿,在视力水平相等情况下,知觉辨认能力强的人会马上察觉到这点绿,而知觉辨认能力弱的人则不能。\n" +
|
|
|
+ "在知觉辨认能力维度得分高的受测者对外界环境各种感觉的组织整合能力较强,看待问题更有全局观,往往能耳听八方、眼观六路。\n" +
|
|
|
+ "而在该维度得分较低的受测者则对外界环境各种感觉信息的组织整合能力较差,看待问题时可能忽略对整体的把控或处理失误。\n" +
|
|
|
+ "对于在该维度得分较低的受测者,建议可以后续在心灵照相机平台加强感知觉整体性的辨别训练。");
|
|
|
+ scoreA.put("maximum","12");
|
|
|
+ scoreA.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreA);
|
|
|
+ JSONObject scoreB = new JSONObject(true);
|
|
|
+ scoreB.put("name","雷同比较能力");
|
|
|
+ scoreB.put("score",B);
|
|
|
+ scoreB.put("Describe","类同比较能力跟比较推理能力差不多,不同的是类同比较能力只强调个体将同类事物进行比较并从中提取出共同要素即可,而不强调举一反三将其用于其他同类问题的解决。因此简单地说,类同比较能力就相当于找不同。\n" +
|
|
|
+ "该维度得分高的受测者在同类现象中发觉共同规律的能力较强,归纳总结能力较强。而在该维度得分低的受测者这类能力较差。\n" +
|
|
|
+ "该维度得分较低的受测者可以后续加强类同比较能力训练。");
|
|
|
+ scoreB.put("maximum","12");
|
|
|
+ scoreB.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreB);
|
|
|
+ JSONObject scoreC = new JSONObject(true);
|
|
|
+ scoreC.put("name","比较推理能力");
|
|
|
+ scoreC.put("score",C);
|
|
|
+ scoreC.put("Describe","比较推理能力是指个体从同类现象或问题中提取出共性因素,举一反三,并应用于其他同类问题的解决中去的能力,比如鲁班根据茅草发明了锯子,人类根据鸟的模型发明了飞机等。\n" +
|
|
|
+ "在比较推理能力维度得分高的受测者,其举一反三能力更优秀,迁移学习能力更好,且将会获得更好的创造力。\n" +
|
|
|
+ "而在该维度得分低的受测者,其举一反三的能力较差,迁移学习的能力和解决问题的能力也有待提高\n" +
|
|
|
+ "对于在该维度得分较低的受测者,建议可以在平台坚持类比迁移能力的训练和创造力训练,且在平时生活实践中要打破常规惯性思维,提高解决实际问题的能力。");
|
|
|
+ scoreC.put("maximum","12");
|
|
|
+ scoreC.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreC);
|
|
|
+ JSONObject scoreD = new JSONObject(true);
|
|
|
+ scoreD.put("name","系列关系能力");
|
|
|
+ scoreD.put("score",D);
|
|
|
+ scoreD.put("Describe","系列关系能力指个体对情景中若干信息之间的联系的觉察能力,该能力高的个体偏向场依存的认知模式,更能觉察到情景中的变化,更关注外界,该能力低的个体偏向场独立的认知模式,更关注内在。但需要注意的是,场依存和场独立的认知模式是中性的,无好坏之分,而系列关系能力作为一种认知能力是有高低好坏之分的,高肯定比低好。\n" +
|
|
|
+ "因此,该维度得分高的受测者拥有更好的对场景动态的敏感性,换位思考、交际能力更好,更能体会到别人的内心。\n" +
|
|
|
+ "而该维度得分低的受测者这方面能力较差,不太能够换位思考,更多活在自己的世界,但从另一个角度来讲,这部分受测者内心更加深邃,思维能力更强。\n" +
|
|
|
+ "低分受测者也可以通过场依存认知训练等来弥补缺陷。");
|
|
|
+ scoreD.put("maximum","12");
|
|
|
+ scoreD.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreD);
|
|
|
+ JSONObject scoreE = new JSONObject(true);
|
|
|
+ scoreE.put("name","抽象推理能力");
|
|
|
+ scoreE.put("score",E);
|
|
|
+ scoreE.put("Describe","抽象推理能力是一种高级思维能力,小孩在7岁左右开始萌芽,12岁左右青春期开始较快发展。\n" +
|
|
|
+ "抽象推理能力指不仅能把握事物的表面,更能揭露事物的深层本质,即透过现象看本质的能力。该维度得分高的受测者拥有世俗认为的高智商水平,认知灵活性强,其创造力想象力都较高,适合做科学家发明家工作。而得分低的个体则这方面能力较低。作为一种一般能力,抽象推理能力越早培养越好,若受测者年龄较小,可以尽快培养起来。");
|
|
|
+ scoreE.put("maximum","12");
|
|
|
+ scoreE.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreE);
|
|
|
+ resultDBJson.put("dimensions", dimensions);
|
|
|
+ resultJson.put("dimensions", dimensions);
|
|
|
+
|
|
|
+ //注意事项模块
|
|
|
+ /*JSONArray notes = new JSONArray();
|
|
|
+ JSONObject noteObject = new JSONObject(true);
|
|
|
+ noteObject.put("totalScore",score);
|
|
|
+ noteObject.put("scoreDes","通过五个方面得分的结构,一定程度上有助于了解被测者智力结构。 \n" +
|
|
|
+ "对分数作解释时注意,由于瑞文测验强调推理方面的能力,并非完全的智力,目前仅用于智力方面的筛选。因此不能绝对化。\n" +
|
|
|
+ "该测验根据斯皮尔曼智力二因素理论编制,所测量的均为一般智力,而不是某方面的特殊技能。\n" +
|
|
|
+ "本报告不具有临床诊断意义,仅供专业人员参考。\n" +
|
|
|
+ "智力不是一成不变的,会随着年龄变化和受教育以及环境等因素变化而变化,所以以上维度智力得分低的受测者可以通专业训练提升。");
|
|
|
+ notes.add(noteObject);*/
|
|
|
+ resultDBJson.put("note", "通过五个方面得分的结构,一定程度上有助于了解被测者智力结构。 \n" +
|
|
|
+ "对分数作解释时注意,由于瑞文测验强调推理方面的能力,并非完全的智力,目前仅用于智力方面的筛选。因此不能绝对化。\n" +
|
|
|
+ "该测验根据斯皮尔曼智力二因素理论编制,所测量的均为一般智力,而不是某方面的特殊技能。\n" +
|
|
|
+ "本报告不具有临床诊断意义,仅供专业人员参考。\n" +
|
|
|
+ "智力不是一成不变的,会随着年龄变化和受教育以及环境等因素变化而变化,所以以上维度智力得分低的受测者可以通专业训练提升。");
|
|
|
+ resultJson.put("note", "通过五个方面得分的结构,一定程度上有助于了解被测者智力结构。 \n" +
|
|
|
+ "对分数作解释时注意,由于瑞文测验强调推理方面的能力,并非完全的智力,目前仅用于智力方面的筛选。因此不能绝对化。\n" +
|
|
|
+ "该测验根据斯皮尔曼智力二因素理论编制,所测量的均为一般智力,而不是某方面的特殊技能。\n" +
|
|
|
+ "本报告不具有临床诊断意义,仅供专业人员参考。\n" +
|
|
|
+ "智力不是一成不变的,会随着年龄变化和受教育以及环境等因素变化而变化,所以以上维度智力得分低的受测者可以通专业训练提升。");
|
|
|
+ //显示模块
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",true);
|
|
|
+ ifShow.put("note",true);
|
|
|
+ ifShow.put("radar",true);
|
|
|
+ ifShow.put("table",true);
|
|
|
+ resultDBJson.put("ifShow", ifShow);
|
|
|
+ resultJson.put("ifShow", ifShow);
|
|
|
+
|
|
|
+ //第一版计分规则
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultDBJson.put("总分", String.valueOf(score));
|
|
|
+ resultMap.put("解读", "智力水平大于" + resultScore + "%的同龄人");
|
|
|
+ resultJson.put("verdict", "智力水平大于" + resultScore + "%的同龄人");
|
|
|
+ resultDBJson.put("解读", "智力水平大于" + resultScore + "%的同龄人");
|
|
|
+ if (resultScore < 5) {
|
|
|
+ resultMap.put("智力水平", "低下");
|
|
|
+ resultJson.put("brainsLevel", "低下");
|
|
|
+ resultDBJson.put("智力水平", "低下");
|
|
|
+ } else if (resultScore >= 5 && resultScore <= 24) {
|
|
|
+ resultMap.put("智力水平", "中下");
|
|
|
+ resultJson.put("brainsLevel", "中下");
|
|
|
+ resultDBJson.put("智力水平", "中下");
|
|
|
+ } else if (resultScore >= 25 && resultScore <= 74) {
|
|
|
+ resultMap.put("智力水平", "中等");
|
|
|
+ resultJson.put("brainsLevel", "中等");
|
|
|
+ resultDBJson.put("智力水平", "中等");
|
|
|
+ } else if (resultScore >= 75 && resultScore <= 94) {
|
|
|
+ resultMap.put("智力水平", "良好");
|
|
|
+ resultJson.put("brainsLevel", "良好");
|
|
|
+ resultDBJson.put("智力水平", "良好");
|
|
|
+ } else {
|
|
|
+ resultMap.put("智力水平", "优秀");
|
|
|
+ resultJson.put("brainsLevel", "优秀");
|
|
|
+ resultDBJson.put("智力水平", "优秀");
|
|
|
+ }
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, jsonArray.toJavaList(ObjectEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_RIVEN), fileName, Constant.SHEET_NAME_RIVEN);
|
|
|
+ //画钟测试
|
|
|
+ } else if (Constant.QUEST_TYPE_CDT.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ int score = jsonObject.getInteger("Grade");
|
|
|
+ b64Img = jsonObject.getString("Img");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_CDT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_CDT;
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultDBJson.put("总分", String.valueOf(score));
|
|
|
+ resultJson.put("Grade", score);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ List<ObjectEntity> objectEntities = new ArrayList<>();
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject object = jsonArray.getJSONObject(i);
|
|
|
+ Iterator<String> iterator = object.keySet().iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ String key = iterator.next();
|
|
|
+ ObjectEntity objectEntity = new ObjectEntity(key, object.getString(key));
|
|
|
+ objectEntities.add(objectEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //ExcelUtil.createExcelFile(ObjectEntity.class, jsonArray.toJavaList(ObjectEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_CDT), fileName, Constant.SHEET_NAME_CDT);
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, objectEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_CDT), fileName, Constant.SHEET_NAME_CDT);
|
|
|
+ String imgFilePath;
|
|
|
+ if (OSUtil.isLinux()) {
|
|
|
+ File file = new File("./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_CDT);
|
|
|
+ if (!file.exists()) {
|
|
|
+ //file.createNewFile();
|
|
|
+ file.mkdirs();
|
|
|
+ }
|
|
|
+ imgFilePath = "./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_CDT + "/" + userName + Constant.SPLIT_CHAR + userBirthday + Constant.SPLIT_CHAR + userSex + Constant.SPLIT_CHAR + testTime + "-" + Constant.SHEET_NAME_CDT + ".jpg";
|
|
|
+ } else {
|
|
|
+ File file = new File("./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_CDT);
|
|
|
+ if (!file.exists()) {
|
|
|
+ //file.createNewFile();
|
|
|
+ file.mkdirs();
|
|
|
+ }
|
|
|
+ imgFilePath = "./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_CDT + "/" + userName + Constant.SPLIT_CHAR + userBirthday + Constant.SPLIT_CHAR + userSex + Constant.SPLIT_CHAR + testTime + "-" + Constant.SHEET_NAME_CDT + ".jpg";
|
|
|
+ }
|
|
|
+ Utils.GenerateImage(b64Img.substring(b64Img.indexOf(",")+1), imgFilePath);
|
|
|
+ b64Img = imgFilePath;
|
|
|
+ //蒙特利尔认知测试
|
|
|
+ } else if (Constant.QUEST_TYPE_MOCA.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ int score = jsonObject.getInteger("valueSum");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MOCA + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MOCA;
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultDBJson.put("总分", String.valueOf(score));
|
|
|
+ resultJson.put("valueSum", score);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, jsonArray.toJavaList(ObjectEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MOCA), fileName, Constant.SHEET_NAME_MOCA);
|
|
|
+ //简易精神状态测试
|
|
|
+ } else if (Constant.QUEST_TYPE_MMSE.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ int score = jsonObject.getInteger("valueSum");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MMSE + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MMSE;
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultDBJson.put("总分", String.valueOf(score));
|
|
|
+ resultJson.put("valueSum", score);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, jsonArray.toJavaList(ObjectEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MMSE), fileName, Constant.SHEET_NAME_MMSE);
|
|
|
+ //听觉测试
|
|
|
+ } else if (Constant.QUEST_TYPE_BIC.equals(type)) {
|
|
|
+ float score = jsonObject.getFloat("valueSum");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_BIC + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_BIC;
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultJson.put("userScore", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_BIC), fileName, Constant.SHEET_NAME_BIC);
|
|
|
+ //工作记忆测试(空间)
|
|
|
+ } else if (Constant.QUEST_TYPE_MEMORYT.equals(type)) {
|
|
|
+ String scoreOne = jsonObject.getString("userScoreOne");
|
|
|
+ String scoreTwo = jsonObject.getString("userScoreTwo");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MEMORYT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MEMORYT;
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ List list = new ArrayList();
|
|
|
+ JSONObject dimension1 = new JSONObject(true);
|
|
|
+ dimension1.put("name","1back");
|
|
|
+ dimension1.put("score",scoreOne);
|
|
|
+ String desc = null;
|
|
|
+ double correct = Double.valueOf(scoreOne);
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ correct = Double.parseDouble(df.format(correct));
|
|
|
+ //int correct = Integer.parseInt(scoreOne);
|
|
|
+ if (correct>90){
|
|
|
+ desc = "优秀等级:您的视觉空间工作记忆系统容量很大,在同样难度要求的情况下,相比大部分人,您能够记住更多的事物的空间位置信息且记住的时间更长久,但这并不代表您能够过目不忘。\n";
|
|
|
+ }else if(correct>80 && correct<=90){
|
|
|
+ desc = "较优秀等级:您的视觉空间工作记忆系统容量较大,在同样难度要求的情况下,相比一部分人,您能够记住的事物的空间位置信息多一些且记住的时间长一点,但过一段时间(1分钟之后)您也会慢慢忘记。\n";
|
|
|
+ }else if(correct>60 && correct<=80){
|
|
|
+ desc = "一般等级: 您的视觉空间工作记忆系统容量不是很大也不是很小,处于一般水平,在同样难度要求的情况下,您能够记住的事物的空间位置信息不会明显比一般人多也不会明显比一般人少,且过一段时间(1分钟之后)您会慢慢忘记。\n";
|
|
|
+ }else if(correct>50 && correct<=60){
|
|
|
+ desc = "较差等级:您的视觉空间工作记忆系统容量较小,在同样难度要求的情况下,您能够记住的事物的空间位置信息会比其他人少,且遗忘较快。\n";
|
|
|
+ }else if(correct<=50){
|
|
|
+ desc = "极差等级:您的视觉空间工作记忆系统容量很小,在同样难度要求的情况下,您能够记住的事物的空间位置信息多明显比大部分人少,且遗忘地很快。\n";
|
|
|
+ }
|
|
|
+ dimension1.put("Describe",desc);
|
|
|
+ dimension1.put("maximum",100);
|
|
|
+ dimension1.put("groupName","第一组");
|
|
|
+
|
|
|
+ JSONObject dimension2 = new JSONObject(true);
|
|
|
+ dimension2.put("name","2back");
|
|
|
+ dimension2.put("score",scoreTwo);
|
|
|
+ String desc2 = null;
|
|
|
+ double correct2 = Double.valueOf(scoreTwo);
|
|
|
+ correct2 = Double.parseDouble(df.format(correct2));
|
|
|
+ //int correct2 = Integer.parseInt(scoreTwo);
|
|
|
+ if (correct2>90){
|
|
|
+ desc2 = "优秀等级:您的视觉空间工作记忆系统容量很大,在同样难度要求的情况下,相比大部分人,您能够记住更多的事物的空间位置信息且记住的时间更长久,但这并不代表您能够过目不忘。\n";
|
|
|
+ }else if(correct2>80 && correct2<=90){
|
|
|
+ desc2 = "较优秀等级:您的视觉空间工作记忆系统容量较大,在同样难度要求的情况下,相比一部分人,您能够记住的事物的空间位置信息多一些且记住的时间长一点,但过一段时间(1分钟之后)您也会慢慢忘记。\n";
|
|
|
+ }else if(correct2>60 && correct2<=80){
|
|
|
+ desc2 = "一般等级: 您的视觉空间工作记忆系统容量不是很大也不是很小,处于一般水平,在同样难度要求的情况下,您能够记住的事物的空间位置信息不会明显比一般人多也不会明显比一般人少,且过一段时间(1分钟之后)您会慢慢忘记。\n";
|
|
|
+ }else if(correct2>50 && correct2<=60){
|
|
|
+ desc2 = "较差等级:您的视觉空间工作记忆系统容量较小,在同样难度要求的情况下,您能够记住的事物的空间位置信息会比其他人少,且遗忘较快。\n";
|
|
|
+ }else if(correct2<=50){
|
|
|
+ desc2 = "极差等级:您的视觉空间工作记忆系统容量很小,在同样难度要求的情况下,您能够记住的事物的空间位置信息多明显比大部分人少,且遗忘地很快。\n";
|
|
|
+ }
|
|
|
+ dimension2.put("Describe",desc2);
|
|
|
+ dimension2.put("maximum",100);
|
|
|
+ dimension2.put("groupName","第二组");
|
|
|
+ list.add(dimension1);
|
|
|
+ list.add(dimension2);
|
|
|
+ resultJson.put("dimensions",list);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",false);
|
|
|
+ ifShow.put("dimensions",true);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("1back正确率", scoreOne);
|
|
|
+ resultMap.put("2back正确率", scoreTwo);
|
|
|
+ resultJson.put("1back正确率", scoreOne);
|
|
|
+ resultJson.put("2back正确率", scoreTwo);
|
|
|
+ resultDBJson.put("1back正确率", scoreOne);
|
|
|
+ resultDBJson.put("2back正确率", scoreTwo);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MEMORYT), fileName, Constant.SHEET_NAME_MEMORYT);
|
|
|
+ //节奏诊断
|
|
|
+ } else if (Constant.QUEST_TYPE_RHYTHM.equals(type)) {
|
|
|
+ String score = jsonObject.getString("score");
|
|
|
+ String types = jsonObject.getString("type");
|
|
|
+ String subType = jsonObject.getString("subType");
|
|
|
+ String interval = jsonObject.getString("interval");
|
|
|
+ String duration = jsonObject.getString("duration");
|
|
|
+ String questionNo = jsonObject.getString("questionNo");
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_RHYTHM + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_RHYTHM;
|
|
|
+
|
|
|
+ resultJson.put("score", score);
|
|
|
+ resultJson.put("type-subType", types + "-" + subType);
|
|
|
+ resultJson.put("interval", interval + "ms");
|
|
|
+ resultJson.put("duration", duration + "s");
|
|
|
+ resultJson.put("questionNo", questionNo);
|
|
|
+
|
|
|
+
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultDBJson.put("模式类型", types + "-" + subType);
|
|
|
+ resultDBJson.put("节拍间隔", interval + "ms");
|
|
|
+ resultDBJson.put("持续时间", duration + "s");
|
|
|
+ b64Img = questionNo;
|
|
|
+
|
|
|
+ RhythmEntity rhythmEntity = new RhythmEntity();
|
|
|
+ rhythmEntity.setDuration(duration + "s");
|
|
|
+ rhythmEntity.setInterval(interval + "ms");
|
|
|
+ rhythmEntity.setSubType(types + "-" + subType);
|
|
|
+ rhythmEntity.setScore(score);
|
|
|
+ rhythmEntity.setQuestionNo(questionNo);
|
|
|
+ List<RhythmEntity> rhythmEntities = new ArrayList<>();
|
|
|
+ rhythmEntities.add(rhythmEntity);
|
|
|
+ /*String result = "";
|
|
|
+ result += objectEntity.getKey()+":"+objectEntity.getValue();
|
|
|
+ //resultJson.put("测试结果", jsonArray.toJavaList(ObjectEntity.class));
|
|
|
+ resultJson.put("测试结果", result);*/
|
|
|
+ //ExcelUtil.createExcelFile(ObjectEntity.class, null, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MOVEMENT), fileName, Constant.SHEET_NAME_MOVEMENT);
|
|
|
+ datas = jsonObject.toString();
|
|
|
+ ExcelUtil.createExcelFile(RhythmEntity.class, rhythmEntities, null, new ExcelClass().contentExcel(Constant.QUEST_TYPE_RHYTHM), fileName, Constant.SHEET_NAME_RHYTHM);
|
|
|
+
|
|
|
+ //目标追踪测试
|
|
|
+ } else if (Constant.QUEST_TYPE_GTCT.equals(type)) {
|
|
|
+ //用户测试记录
|
|
|
+ JSONArray gtctEntitieList = jsonObject.getJSONArray("userRecords");
|
|
|
+ List<GTCTEntity> gtctEntities = gtctEntitieList.toJavaList(GTCTEntity.class);
|
|
|
+ //用户测试结果
|
|
|
+ JSONArray userResult = jsonObject.getJSONArray("indexList");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_GTCT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_GTCT;
|
|
|
+ double score = 0;
|
|
|
+ for (int i = 0; i < userResult.size(); i++) {
|
|
|
+ JSONObject jsonObject1 = userResult.getJSONObject(i);
|
|
|
+ score += Double.valueOf(jsonObject1.getString("raghtRate").replace("%",""));
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("难度等级", String.valueOf(jsonObject1.getInteger("diff")));
|
|
|
+ resultDBJson.put((i + 1) + "难度等级", String.valueOf(jsonObject1.getInteger("diff")));
|
|
|
+ resultJson.put((i + 1) + "难度等级", String.valueOf(jsonObject1.getInteger("diff")));
|
|
|
+ resultMap.put("正确率", String.valueOf(jsonObject1.getString("raghtRate")));
|
|
|
+ resultDBJson.put((i + 1) + "难度等级正确率", String.valueOf(jsonObject1.getString("raghtRate")));
|
|
|
+ resultJson.put((i + 1) + "难度等级正确率", String.valueOf(jsonObject1.getString("raghtRate")));
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ }
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ score = Double.parseDouble(df.format(score/userResult.size()));
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",score+"%");
|
|
|
+ if (score>90){
|
|
|
+ desc = "优秀等级:您具有很好的注意分配、视觉定向能力、眼动跟随和追踪物体的协调能力、专注力以及阅读能力。比如,您阅读时会很快很准,不会出现漏字或看错字,您在学习或做一件事情时很专注和沉浸其中。";
|
|
|
+ }else if(score>80 && score<=90){
|
|
|
+ desc = "较优秀等级:您具有较好的注意分配、视觉定向能力、眼动跟随和追踪物体的协调能力、专注力以及阅读能力。比如,您能较快较准地阅读,不太会出现漏字或看错字,您在学习或做一件事情时能够较专注和沉浸其中。";
|
|
|
+ }else if(score>65 && score<=80){
|
|
|
+ desc = "一般等级:您具有一般水平的注意分配、视觉定向能力、眼动跟随和追踪物体的协调能力、专注力以及阅读能力。比如,您阅读文字时不会太快太准,但也不会出现太多的漏字或看错字的情况,您学习或做一件事情的专注度和投入程度处于一般水平,能够在一定程度上沉浸在当下所做的事情上。";
|
|
|
+ }else if(score>50 && score<=65){
|
|
|
+ desc = "较差等级:您的注意分配、视觉定向能力、眼动跟随和追踪物体的协调能力、专注力以及阅读能力较差。比如,您在阅读时会较慢,且漏字和看错字情况较多,您不能很好地沉浸在学习或当下所做的事情中。";
|
|
|
+ }else if(score<=50){
|
|
|
+ desc = "极差等级:您的注意分配、视觉定向能力、眼动跟随和追踪物体的协调能力、专注力以及阅读能力很差。比如,您在阅读时会很慢,且漏字和看错字情况很多,您几乎不能专注在学习或当下所做的事情中。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+ datas = gtctEntitieList.toString();
|
|
|
+ ExcelUtil.createExcelFile(GTCTEntity.class, gtctEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_GTCT), fileName, Constant.SHEET_NAME_GTCT);
|
|
|
+
|
|
|
+ //ANT测试
|
|
|
+ } else if (Constant.QUEST_TYPE_ANT.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ //准确率
|
|
|
+ String rightRate = jsonObject.getString("rightRate");
|
|
|
+ //总反应时长
|
|
|
+ String totalResponseTime = jsonObject.getString("totalResponseTime");
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ANT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ANT;
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ //命中率
|
|
|
+ double hitRate = result.getDouble("hitRate");
|
|
|
+ //冲突分数
|
|
|
+ double conflictScore = result.getDouble("conflictScore");
|
|
|
+ //定向分数
|
|
|
+ double directionScore = result.getDouble("directionScore");
|
|
|
+ //警报分数
|
|
|
+ double warnScore = result.getDouble("warnScore");
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",hitRate);
|
|
|
+
|
|
|
+ if (hitRate>0.8){
|
|
|
+ desc = "优秀等级:您具有很好的注意警觉、定向和执行控制能力,即您能很好地获得并维持对某个信息的警觉状态、能很好且及时有效地从外部信息进行选择、以及能很好地解决反应中的冲突。比如举个例子,上课时您能够全过程跟着老师的思路认真听讲,并能够抓住老师所讲的重点内容,且能够很好地排除课堂上的其他干扰。";
|
|
|
+ }else if(hitRate>0.75 && hitRate<=0.8){
|
|
|
+ desc = "较优秀等级:您具有较好的注意警觉、定向和执行控制能力,即您能较好地获得并维持对某个信息的警觉状态、能较好且较及时有效地从外部信息进行选择、以及能较好地解决反应中的冲突。比如举个例子,上课时您能够一定程度上较认真地跟着老师的思路听讲,并能够一定程度上抓住老师所讲的重点内容,且能够较好地排除课堂上的其他干扰。";
|
|
|
+ }else if(hitRate>0.7 && hitRate<=0.75){
|
|
|
+ desc = "一般等级:您具有一般水平的注意警觉、定向和执行控制能力,即您不能很好但可以较好地获得并维持对某个信息的警觉状态、不能很好很及时有效但能较好较及时有效地从外部信息进行选择、以及不能很好但能较好地解决反应中的冲突。比如,上课听讲时您只能一定程度上跟着老师的思路听讲,抓住老师所讲的部分重点内容,能够排除一部分课堂上的其他干扰。";
|
|
|
+ }else if(hitRate>0.65 && hitRate<=0.7){
|
|
|
+ desc = "较差等级:您的注意警觉、定向和执行控制能力较差,即您不能很好地获得并维持对某个信息的警觉状态、不能很好且及时有效地从外部信息进行选择、以及不能很好地解决反应中的冲突。比如,上课听讲时您不能跟着老师的思路认真听讲,不能抓住老师所讲的重点内容,不能够排除课堂上的其他干扰。";
|
|
|
+ }else if(hitRate<=0.65){
|
|
|
+ desc = "极差等级:您的注意警觉、定向和执行控制能力很差,即您完全不能很好地获得并维持对某个信息的警觉状态、完全不能很好且及时有效地从外部信息进行选择、以及完全不能很好地解决反应中的冲突。比如,上课听讲时您几乎不能跟着老师的思路听讲,几乎不能抓住老师所讲的重点内容,几乎不能够排除课堂上的其他干扰。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ //维度得分及解读模块
|
|
|
+ JSONArray dimensions = new JSONArray();
|
|
|
+ JSONObject scoreA = new JSONObject(true);
|
|
|
+ scoreA.put("name","冲突分数");
|
|
|
+ scoreA.put("score",String.valueOf(conflictScore));
|
|
|
+ String DescribeA = null;
|
|
|
+ if (conflictScore>50000){
|
|
|
+ DescribeA = "极差等级:您的注意执行控制能力很差,您几乎不能够很好地处理对外界信息进行反应时的冲突。比如,当您在写作业或看书时,隔壁房间有人在唱歌,此时您一定会受到噪音干扰,也几乎不能安心学习。";
|
|
|
+ }else if(conflictScore>40000 && conflictScore<=50000){
|
|
|
+ DescribeA = "较差等级:您的注意执行控制能力较差,您不能够很好地处理对外界信息进行反应时的冲突。比如,当您在写作业或看书时,隔壁房间有人在唱歌,此时您会受到噪音干扰,也不能安心学习。";
|
|
|
+ }else if(conflictScore>30000 && conflictScore<=40000){
|
|
|
+ DescribeA = "一般等级:您具有一般水平的注意执行控制能力,您能够较好但不能很好地处理对外界信息进行反应时的冲突。比如,当您在写作业或看书时,隔壁房间有人在唱歌,此时您会一定程度上受噪音干扰,但也能安心学习。";
|
|
|
+ }else if(conflictScore>20000 && conflictScore<=30000){
|
|
|
+ DescribeA = "较优秀等级:您具有较好的注意执行控制能力,您能够较好地处理对外界信息进行反应时的冲突。比如,当您在写作业或看书时,隔壁房间有人在唱歌,此时您能够较好地安心学习,一定程度上不受噪音干扰。";
|
|
|
+ }else if(conflictScore<=20000){
|
|
|
+ DescribeA = "优秀等级:您具有很好的注意执行控制能力,您能够很好地处理对外界信息进行反应时的冲突。比如,当您在写作业或看书时,隔壁房间有人在唱歌,此时您能够很好地安心学习,不受噪音干扰。";
|
|
|
+ }
|
|
|
+ scoreA.put("Describe",DescribeA);
|
|
|
+ scoreA.put("maximum","无");
|
|
|
+ scoreA.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreA);
|
|
|
+ JSONObject scoreB = new JSONObject(true);
|
|
|
+ scoreB.put("name","定向分数");
|
|
|
+ scoreB.put("score",String.valueOf(directionScore));
|
|
|
+ String DescribeB = null;
|
|
|
+ if (conflictScore> -2000){
|
|
|
+ DescribeB = "优秀等级:您具有很好的注意定向能力,能够很好地发觉情景中进入感觉通道的新异刺激并做出反应。比如,在开车时,如果前方出现一条小狗,您能够很快发觉并及时做出刹车反应。";
|
|
|
+ }else if(conflictScore> -3000 && conflictScore<=-2000){
|
|
|
+ DescribeB = "较优秀等级:您具有较好的注意定向能力,能够较好地发觉情景中进入感觉通道的新异刺激并做出反应。比如,在开车时,如果前方出现一条小狗,您能够较快发觉并做出刹车反应。";
|
|
|
+ }else if(conflictScore> -4000 && conflictScore<=-3000){
|
|
|
+ DescribeB = "一般等级:您具有一般水平的注意定向能力,您不能够很好但能较好地发觉情景中进入感觉通道的新异刺激并做出反应。比如,在开车时,如果前方出现一条小狗,您不能够很快但也能发觉并做出刹车反应。";
|
|
|
+ }else if(conflictScore> -5000 && conflictScore<=-4000){
|
|
|
+ DescribeB = "较差等级:您的注意定向能力较差,不能够很好地发觉情景中进入感觉通道的新异刺激并做出反应。比如,在开车时,如果前方出现一条小狗,您不能够很快发觉并做出刹车反应。";
|
|
|
+ }else if(conflictScore<=-5000){
|
|
|
+ DescribeB = "极差等级:您的注意定向能力很差,几乎不能很好地发觉情景中进入感觉通道的新异刺激并做出反应。比如,在开车时,如果前方出现一条小狗,您几乎不能够发觉并做出刹车反应。";
|
|
|
+ }
|
|
|
+ scoreB.put("Describe",DescribeB);
|
|
|
+ scoreB.put("maximum","无");
|
|
|
+ scoreB.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreB);
|
|
|
+ resultJson.put("dimensions", dimensions);
|
|
|
+ JSONObject scoreC = new JSONObject(true);
|
|
|
+ scoreC.put("name","警报分数");
|
|
|
+ scoreC.put("score",String.valueOf(warnScore));
|
|
|
+ String DescribeC = null;
|
|
|
+ if (conflictScore> 4000){
|
|
|
+ DescribeC = "极差等级:您的注意警觉能力很差,您几乎不能保持对某一刺激的警觉投入状态。比如,在上课时,您在上课的40分钟内不能跟着老师的思路听讲,而且中间很容易走神或疲惫。";
|
|
|
+ }else if(conflictScore> 3000 && conflictScore<=4000){
|
|
|
+ DescribeC = "较差等级:您的注意警觉能力较差,您不能够很好地保持对某一刺激的警觉投入状态。比如,在上课时,您在上课的40分钟内并不能很好地跟着老师的思路听讲,而且中间会一定程度地走神或疲惫。";
|
|
|
+ }else if(conflictScore> 2000 && conflictScore<=3000){
|
|
|
+ DescribeC = "一般等级:您具有一般水平的注意警觉能力,您并不能够很好但能较好地保持对某一刺激的警觉投入状态。比如,在上课时,您在上课的40分钟内并不能完全很好地跟着老师的思路听讲但能一定程度上跟着老师的思路投入课堂,而且中间会略微走神或疲惫。";
|
|
|
+ }else if(conflictScore> 1000 && conflictScore<=2000){
|
|
|
+ DescribeC = "较优秀等级:您具有较好的注意警觉能力,您能够较好地保持对某一刺激的警觉投入状态。比如,在上课时,您能在上课的40分钟内较好地跟着老师的思路认真听讲,中间很少走神或疲惫。";
|
|
|
+ }else if(conflictScore<=1000){
|
|
|
+ DescribeC = "优秀等级:您具有很好的注意警觉能力,您能够很好地保持对某一刺激的警觉投入状态。比如,在上课时,您能在上课的40分钟内很好地跟着老师的思路认真听讲,而不会中间走神或疲惫。";
|
|
|
+ }
|
|
|
+ scoreC.put("Describe",DescribeC);
|
|
|
+ scoreC.put("maximum","无");
|
|
|
+ scoreC.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreC);
|
|
|
+ resultJson.put("dimensions", dimensions);
|
|
|
+
|
|
|
+
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",true);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("准确率", rightRate);
|
|
|
+ resultDBJson.put("准确率", rightRate);
|
|
|
+ resultJson.put("rightRate", rightRate);
|
|
|
+ resultMap.put("总反应时长", totalResponseTime);
|
|
|
+ resultDBJson.put("总反应时长", totalResponseTime);
|
|
|
+ resultJson.put("totalResponseTime", totalResponseTime);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultDBJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultMap1.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultDBJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultMap1.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultDBJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultMap1.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultDBJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultMap1.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultMap1.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultDBJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultMap1.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultDBJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultMap1.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultDBJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultMap1.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultDBJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultMap1.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultDBJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultMap1.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultDBJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultMap1.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultDBJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultMap1.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultDBJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultMap1.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultDBJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultMap1.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultDBJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultMap1.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultMap1.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultDBJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultMap1.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultDBJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultMap1.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultDBJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ANTEntity.class, jsonArray.toJavaList(ANTEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ANT), fileName, Constant.SHEET_NAME_ANT);
|
|
|
+
|
|
|
+ //ANT测试(亚太)
|
|
|
+ } else if (Constant.QUEST_TYPE_ANT_YATAI.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ //准确率
|
|
|
+ String rightRate = jsonObject.getString("rightRate");
|
|
|
+ //总反应时长
|
|
|
+ String totalResponseTime = jsonObject.getString("totalResponseTime");
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ANT_YATAI + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ANT_YATAI;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("准确率", rightRate);
|
|
|
+ resultDBJson.put("准确率", rightRate);
|
|
|
+ resultJson.put("rightRate", rightRate);
|
|
|
+ resultMap.put("总反应时长", totalResponseTime);
|
|
|
+ resultDBJson.put("总反应时长", totalResponseTime);
|
|
|
+ resultJson.put("totalResponseTime", totalResponseTime);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultDBJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultMap1.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultDBJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultMap1.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultDBJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultMap1.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultDBJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultMap1.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultMap1.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultDBJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultMap1.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultDBJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultMap1.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultDBJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultMap1.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultDBJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultMap1.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultDBJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultMap1.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultDBJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultMap1.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultDBJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultMap1.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultDBJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultMap1.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultDBJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultMap1.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultDBJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultMap1.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultMap1.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultDBJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultMap1.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultDBJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultMap1.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultDBJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ANTEntity.class, jsonArray.toJavaList(ANTEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ANT), fileName, Constant.SHEET_NAME_ANT_YATAI);
|
|
|
+
|
|
|
+ //ANT儿童版
|
|
|
+ } else if (Constant.QUEST_TYPE_ANT_FISH.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ //准确率
|
|
|
+ String rightRate = jsonObject.getString("rightRate");
|
|
|
+ //总反应时长
|
|
|
+ String totalResponseTime = jsonObject.getString("totalResponseTime");
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ANT_FISH + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ANT_FISH;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("准确率", rightRate);
|
|
|
+ resultDBJson.put("准确率", rightRate);
|
|
|
+ resultJson.put("rightRate", rightRate);
|
|
|
+ resultMap.put("总反应时长", totalResponseTime);
|
|
|
+ resultDBJson.put("总反应时长", totalResponseTime);
|
|
|
+ resultJson.put("totalResponseTime", totalResponseTime);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultDBJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultMap1.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultDBJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultMap1.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultDBJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultMap1.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultDBJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultMap1.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultMap1.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultDBJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultMap1.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultDBJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultMap1.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultDBJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultMap1.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultDBJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultMap1.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultDBJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultMap1.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultDBJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultMap1.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultDBJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultMap1.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultDBJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultMap1.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultDBJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultMap1.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultDBJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultMap1.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultMap1.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultDBJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultMap1.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultDBJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultMap1.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultDBJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ANTEntity.class, jsonArray.toJavaList(ANTEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ANT), fileName, Constant.SHEET_NAME_ANT_FISH);
|
|
|
+
|
|
|
+ //游戏5
|
|
|
+ } else if (Constant.QUEST_TYPE_ANT_FISH_YATAI.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ //准确率
|
|
|
+ String rightRate = jsonObject.getString("rightRate");
|
|
|
+ //总反应时长
|
|
|
+ String totalResponseTime = jsonObject.getString("totalResponseTime");
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ANT_FISH_YATAI + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ANT_FISH_YATAI;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("准确率", rightRate);
|
|
|
+ resultDBJson.put("准确率", rightRate);
|
|
|
+ resultJson.put("rightRate", rightRate);
|
|
|
+ resultMap.put("总反应时长", totalResponseTime);
|
|
|
+ resultDBJson.put("总反应时长", totalResponseTime);
|
|
|
+ resultJson.put("totalResponseTime", totalResponseTime);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultDBJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultJson.put("总命中次数", String.valueOf(result.get("hitsAll")));
|
|
|
+ resultMap1.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultDBJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultJson.put("一致性命中次数", String.valueOf(result.get("hitscongruent")));
|
|
|
+ resultMap1.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultDBJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultJson.put("不一致性命中次数", String.valueOf(result.get("hitsincongruent")));
|
|
|
+ resultMap1.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultDBJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultJson.put("NoCue命中次数", String.valueOf(result.get("hitsNoCue")));
|
|
|
+ resultMap1.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue命中次数", String.valueOf(result.get("hitsNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue命中次数", String.valueOf(result.get("hitsSpatialCue")));
|
|
|
+ resultMap1.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultDBJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultJson.put("命中率", String.valueOf(result.get("hitRate")));
|
|
|
+ resultMap1.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultDBJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultJson.put("一致性命中率", String.valueOf(result.get("congruentHitRate")));
|
|
|
+ resultMap1.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultDBJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultJson.put("不一致性命中率", String.valueOf(result.get("incongruentHitRate")));
|
|
|
+ resultMap1.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultDBJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultJson.put("NoCue命中率", String.valueOf(result.get("noCueHitRate")));
|
|
|
+ resultMap1.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultDBJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultJson.put("NeutralCue命中率", String.valueOf(result.get("neutralCueHitRate")));
|
|
|
+ resultMap1.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultDBJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultJson.put("SpatialCue命中率", String.valueOf(result.get("spatialCueHitRate")));
|
|
|
+ resultMap1.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultDBJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultJson.put("反应时", String.valueOf(result.get("responseTimeAll")));
|
|
|
+ resultMap1.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultDBJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultJson.put("一致性反应时", String.valueOf(result.get("responseTimeCongruent")));
|
|
|
+ resultMap1.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultDBJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultJson.put("不一致性反应时", String.valueOf(result.get("responseTimeIncongruent")));
|
|
|
+ resultMap1.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultDBJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultJson.put("NoCue反应时", String.valueOf(result.get("responseTimeNoCue")));
|
|
|
+ resultMap1.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultDBJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultJson.put("NeutralCue反应时", String.valueOf(result.get("responseTimeNeutralCue")));
|
|
|
+ resultMap1.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultDBJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultJson.put("SpatialCue反应时", String.valueOf(result.get("responseTimeSpatialCue")));
|
|
|
+ resultMap1.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultDBJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultJson.put("警报分数", String.valueOf(result.get("warnScore")));
|
|
|
+ resultMap1.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultDBJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultJson.put("定向分数", String.valueOf(result.get("directionScore")));
|
|
|
+ resultMap1.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultDBJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultJson.put("冲突分数", String.valueOf(result.get("conflictScore")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ANTEntity.class, jsonArray.toJavaList(ANTEntity.class), resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ANT), fileName, Constant.SHEET_NAME_ANT_FISH_YATAI);
|
|
|
+
|
|
|
+ //形状知觉测试
|
|
|
+ } else if (Constant.QUEST_TYPE_SHAPE.equals(type)) {
|
|
|
+ String userScore = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_SHAPE + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_SHAPE;
|
|
|
+
|
|
|
+ double score = 0;
|
|
|
+ score = Double.valueOf(userScore.replace("%",""));
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",score+"%");
|
|
|
+ if (score>90){
|
|
|
+ desc = "优秀等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分都接近相同,您仍然能够以很高的准确率辨认出鸭蛋尖的朝向,说明您的视觉形状辨认能力很强,在生活中辨认物体时,不容易产生视错觉。";
|
|
|
+ }else if(score>80 && score<=90){
|
|
|
+ desc = "较优秀等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您能够以较高准确率辨认出鸭蛋尖的朝向,说明您具有较强的视觉形状辨认能力,在生活中辨认物体时,一般很少产生视错觉。";
|
|
|
+ }else if(score>60 && score<=80){
|
|
|
+ desc = "一般等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的准确率不是很高也不是很低,说明您的视觉形状辨认能力处于一般水平,在生活中辨认物体时,会产生一定的视错觉但不会很多。";
|
|
|
+ }else if(score>50 && score<=60){
|
|
|
+ desc = "较差等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的正确率较低,说明您的视觉形状辨认能力较差,在生活中辨认物体时,有时会产生视错觉。";
|
|
|
+ }else if(score<=50){
|
|
|
+ desc = "极差等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的正确率很低,说明您的视觉形状辨认能力很差,在生活中辨认物体时,可能经常会产生视错觉。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score+"%");
|
|
|
+ resultJson.put("userScore", score+"%");
|
|
|
+ resultDBJson.put("总分", score+"%");
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ /*String score = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_SHAPE + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_SHAPE;
|
|
|
+ ObjectEntity objectEntity = new ObjectEntity();
|
|
|
+ objectEntity.setValue(score);
|
|
|
+ objectEntity.setKey("总分");
|
|
|
+ List<ObjectEntity> objectEntities = new ArrayList<>();
|
|
|
+ objectEntities.add(objectEntity);
|
|
|
+ String result = "";
|
|
|
+ result += objectEntity.getKey()+":"+objectEntity.getValue();
|
|
|
+ //resultJson.put("测试结果", jsonArray.toJavaList(ObjectEntity.class));
|
|
|
+ resultJson.put("测试结果", result);
|
|
|
+ resultDBJson.put("总分",score);*/
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_SHAPE), fileName, Constant.SHEET_NAME_SHAPE);
|
|
|
+ //形状知觉测试(自下而上)(亚太)
|
|
|
+ } else if (Constant.QUEST_TYPE_SHAPE_YATAI.equals(type)) {
|
|
|
+ String score = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_SHAPE_YATAI + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_SHAPE_YATAI;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultJson.put("userScore", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ JSONArray totalIndexResult = jsonObject.getJSONArray("totalIndexResult");
|
|
|
+ JSONObject resultBack0 = totalIndexResult.getJSONObject(5);
|
|
|
+ Map<String, String> resultMap0 = new LinkedHashMap<>();
|
|
|
+ resultMap0.put("难度等级", String.valueOf(resultBack0.get("diffIndex")));
|
|
|
+ //resultJson.put("一级难度等级1", String.valueOf(resultBack0.get("diffIndex")));
|
|
|
+ resultDBJson.put("一级难度等级", String.valueOf(resultBack0.get("diffIndex")));
|
|
|
+ resultMap0.put("测试总数", String.valueOf(resultBack0.get("totalCount")));
|
|
|
+ resultJson.put("一级难度测试总数", String.valueOf(resultBack0.get("totalCount")));
|
|
|
+ resultDBJson.put("一级难度测试总数", String.valueOf(resultBack0.get("totalCount")));
|
|
|
+ resultMap0.put("正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultJson.put("一级难度正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultDBJson.put("一级难度正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultMap0.put("正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultJson.put("一级难度正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultDBJson.put("一级难度正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap0);
|
|
|
+ JSONObject resultBack1 = totalIndexResult.getJSONObject(4);
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("难度等级", String.valueOf(resultBack1.get("diffIndex")));
|
|
|
+ //resultJson.put("难度等级2", String.valueOf(resultBack1.get("diffIndex")));
|
|
|
+ resultDBJson.put("二级难度等级", String.valueOf(resultBack1.get("diffIndex")));
|
|
|
+ resultMap1.put("测试总数", String.valueOf(resultBack1.get("totalCount")));
|
|
|
+ resultJson.put("二级难度测试总数", String.valueOf(resultBack1.get("totalCount")));
|
|
|
+ resultDBJson.put("二级难度测试总数", String.valueOf(resultBack1.get("totalCount")));
|
|
|
+ resultMap1.put("正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultJson.put("二级难度正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultDBJson.put("二级难度正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultMap1.put("正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultJson.put("二级难度正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultDBJson.put("二级难度正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ JSONObject resultBack2 = totalIndexResult.getJSONObject(3);
|
|
|
+ Map<String, String> resultMap2 = new LinkedHashMap<>();
|
|
|
+ resultMap2.put("难度等级", String.valueOf(resultBack2.get("diffIndex")));
|
|
|
+ //resultJson.put("难度等级3", String.valueOf(resultBack2.get("diffIndex")));
|
|
|
+ resultDBJson.put("三级难度等级", String.valueOf(resultBack2.get("diffIndex")));
|
|
|
+ resultMap2.put("测试总数", String.valueOf(resultBack2.get("totalCount")));
|
|
|
+ resultJson.put("三级难度测试总数", String.valueOf(resultBack2.get("totalCount")));
|
|
|
+ resultDBJson.put("三级难度测试总数", String.valueOf(resultBack2.get("totalCount")));
|
|
|
+ resultMap2.put("正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultJson.put("三级难度正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultDBJson.put("三级难度正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultMap2.put("正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultJson.put("三级难度正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultDBJson.put("三级难度正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap2);
|
|
|
+ JSONObject resultBack3 = totalIndexResult.getJSONObject(2);
|
|
|
+ Map<String, String> resultMap3 = new LinkedHashMap<>();
|
|
|
+ resultMap3.put("难度等级", String.valueOf(resultBack3.get("diffIndex")));
|
|
|
+ //resultJson.put("难度等级4", String.valueOf(resultBack3.get("diffIndex")));
|
|
|
+ resultDBJson.put("四级难度等级", String.valueOf(resultBack3.get("diffIndex")));
|
|
|
+ resultMap3.put("测试总数", String.valueOf(resultBack3.get("totalCount")));
|
|
|
+ resultJson.put("四级难度测试总数", String.valueOf(resultBack3.get("totalCount")));
|
|
|
+ resultDBJson.put("四级难度测试总数", String.valueOf(resultBack3.get("totalCount")));
|
|
|
+ resultMap3.put("正确数", String.valueOf(resultBack3.get("rightCount")));
|
|
|
+ resultJson.put("四级难度正确数", String.valueOf(resultBack3.get("rightCount")));
|
|
|
+ resultDBJson.put("四级难度正确数", String.valueOf(resultBack3.get("rightCount")));
|
|
|
+ resultMap3.put("正确率", String.valueOf(resultBack3.get("rightRate")));
|
|
|
+ resultJson.put("四级难度正确率", String.valueOf(resultBack3.get("rightRate")));
|
|
|
+ resultDBJson.put("四级难度正确率", String.valueOf(resultBack3.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap3);
|
|
|
+ JSONObject resultBack4 = totalIndexResult.getJSONObject(1);
|
|
|
+ Map<String, String> resultMap4 = new LinkedHashMap<>();
|
|
|
+ resultMap4.put("难度等级", String.valueOf(resultBack4.get("diffIndex")));
|
|
|
+ //resultJson.put("难度等级5", String.valueOf(resultBack4.get("diffIndex")));
|
|
|
+ resultDBJson.put("五级难度等级", String.valueOf(resultBack4.get("diffIndex")));
|
|
|
+ resultMap4.put("测试总数", String.valueOf(resultBack4.get("totalCount")));
|
|
|
+ resultJson.put("五级难度测试总数", String.valueOf(resultBack4.get("totalCount")));
|
|
|
+ resultDBJson.put("五级难度测试总数", String.valueOf(resultBack4.get("totalCount")));
|
|
|
+ resultMap4.put("正确数", String.valueOf(resultBack4.get("rightCount")));
|
|
|
+ resultJson.put("五级难度正确数", String.valueOf(resultBack4.get("rightCount")));
|
|
|
+ resultDBJson.put("五级难度正确数", String.valueOf(resultBack4.get("rightCount")));
|
|
|
+ resultMap4.put("正确率", String.valueOf(resultBack4.get("rightRate")));
|
|
|
+ resultJson.put("五级难度正确率", String.valueOf(resultBack4.get("rightRate")));
|
|
|
+ resultDBJson.put("五级难度正确率", String.valueOf(resultBack4.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap4);
|
|
|
+ JSONObject resultBack5 = totalIndexResult.getJSONObject(0);
|
|
|
+ Map<String, String> resultMap5 = new LinkedHashMap<>();
|
|
|
+ resultMap5.put("难度等级", String.valueOf(resultBack5.get("diffIndex")));
|
|
|
+ //resultJson.put("难度等级6", String.valueOf(resultBack5.get("diffIndex")));
|
|
|
+ resultDBJson.put("六级难度等级", String.valueOf(resultBack5.get("diffIndex")));
|
|
|
+ resultMap5.put("测试总数", String.valueOf(resultBack5.get("totalCount")));
|
|
|
+ resultJson.put("六级难度测试总数", String.valueOf(resultBack5.get("totalCount")));
|
|
|
+ resultDBJson.put("六级难度测试总数", String.valueOf(resultBack5.get("totalCount")));
|
|
|
+ resultMap5.put("正确数", String.valueOf(resultBack5.get("rightCount")));
|
|
|
+ resultJson.put("六级难度正确数", String.valueOf(resultBack5.get("rightCount")));
|
|
|
+ resultDBJson.put("六级难度正确数", String.valueOf(resultBack5.get("rightCount")));
|
|
|
+ resultMap5.put("正确率", String.valueOf(resultBack5.get("rightRate")));
|
|
|
+ resultJson.put("六级难度正确率", String.valueOf(resultBack5.get("rightRate")));
|
|
|
+ resultDBJson.put("六级难度正确率", String.valueOf(resultBack5.get("rightRate")));
|
|
|
+ resultMapList.add(resultMap5);
|
|
|
+
|
|
|
+
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_SHAPE), fileName, Constant.SHEET_NAME_SHAPE_YATAI);
|
|
|
+ //形状知觉测试2
|
|
|
+ } else if (Constant.QUEST_TYPE_SHAPE2.equals(type)) {
|
|
|
+ String userScore = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_SHAPE2 + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_SHAPE2;
|
|
|
+
|
|
|
+ double score = 0;
|
|
|
+ score = Double.valueOf(userScore.replace("%",""));
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",score+"%");
|
|
|
+ if (score>90){
|
|
|
+ desc = "优秀等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分都接近相同,您仍然能够以很高的准确率辨认出鸭蛋尖的朝向,说明您的视觉形状辨认能力很强,在生活中辨认物体时,不容易产生视错觉。";
|
|
|
+ }else if(score>80 && score<=90){
|
|
|
+ desc = "较优秀等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您能够以较高准确率辨认出鸭蛋尖的朝向,说明您具有较强的视觉形状辨认能力,在生活中辨认物体时,一般很少产生视错觉。";
|
|
|
+ }else if(score>60 && score<=80){
|
|
|
+ desc = "一般等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的准确率不是很高也不是很低,说明您的视觉形状辨认能力处于一般水平,在生活中辨认物体时,会产生一定的视错觉但不会很多。";
|
|
|
+ }else if(score>50 && score<=60){
|
|
|
+ desc = "较差等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的正确率较低,说明您的视觉形状辨认能力较差,在生活中辨认物体时,有时会产生视错觉。";
|
|
|
+ }else if(score<=50){
|
|
|
+ desc = "极差等级:在测验中的图片,图片中“鸭蛋”的颜色、明度与邻近的部分接近相同,您辨认出鸭蛋尖的朝向的正确率很低,说明您的视觉形状辨认能力很差,在生活中辨认物体时,可能经常会产生视错觉。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score+"%");
|
|
|
+ resultJson.put("userScore", score+"%");
|
|
|
+ resultDBJson.put("总分", score+"%");
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_SHAPE2), fileName, Constant.SHEET_NAME_SHAPE2);
|
|
|
+
|
|
|
+ //不确定信息决策
|
|
|
+ } else if (Constant.QUEST_TYPE_UNCERTAIN.equals(type)) {
|
|
|
+ String score = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_UNCERTAIN + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_UNCERTAIN;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultJson.put("userScore", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_SHAPE2), fileName, Constant.SHEET_NAME_UNCERTAIN);
|
|
|
+
|
|
|
+ //运动知觉测试
|
|
|
+ } else if (Constant.QUEST_TYPE_MOVEMENT.equals(type)) {
|
|
|
+ String score = jsonObject.getString("userScore");
|
|
|
+ JSONArray userResponseRecords = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ //JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+
|
|
|
+ List<MovementEntity> movementEntities = userResponseRecords.toJavaList(MovementEntity.class);
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MOVEMENT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MOVEMENT;
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ score = score.replace("%","");
|
|
|
+ double correct = Double.valueOf(score);
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ correct = Double.parseDouble(df.format(correct));
|
|
|
+ totalScore.put("totalScore",score);
|
|
|
+ String desc = null;
|
|
|
+ //int correct = Integer.parseInt(score);
|
|
|
+ if (correct>90){
|
|
|
+ desc = "优秀等级:您具有很好的运动知觉能力,即您对周围事物的运动变化及其运动方向等的觉察辨识能力很好,比如在进行网球、乒乓球运动时,您能够很好地估计球的运动速度、变化方向。或者在过马路时,您能够很好地辨识出人流、车流的走向和速度。\n";
|
|
|
+ }else if(correct>80 && correct<=90){
|
|
|
+ desc = "较优秀等级:您具有较好的运动知觉能力,对周围事物的运动变化及其运动方向等的觉察辨识能力较好,比如在进行网球、乒乓球运动时,您能够较好地估计球的运动速度、变化方向。或者在过马路时,您也能够较好地辨识出人流、车流的走向和速度。\n";
|
|
|
+ }else if(correct>60 && correct<=80){
|
|
|
+ desc = "一般等级:您具有一般水平的运动知觉能力,对周围事物的运动变化及其运动方向等的觉察辨识能力不是很好也不会很差,比如在过马路时,您能够大概地辨识出人流、车流的走向和速度。\n";
|
|
|
+ }else if(correct>50 && correct<=60){
|
|
|
+ desc = "较差等级:您的运动知觉能力较差,即对周围事物的运动变化及其运动方向等的觉察辨识能力较差,比如在进行网球、乒乓球运动时,您不能很好地估计球的运动速度、变化方向。或者在过马路时,您也不能很好地辨识出人流、车流的走向和速度。";
|
|
|
+ }else if(correct<=50){
|
|
|
+ desc = "极差等级:您运动知觉能力很差,即对周围事物的运动变化及其运动方向等的觉察辨识能力很差,比如在进行网球、乒乓球运动时,您几乎不能够估计球的运动速度、变化方向。或者在过马路时,您也几乎不能够辨识出人流、车流的走向和速度。\n";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultJson.put("userScore", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = userResponseRecords.toString();
|
|
|
+ ExcelUtil.createExcelFile(MovementEntity.class, movementEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MOVEMENT), fileName, Constant.SHEET_NAME_MOVEMENT);
|
|
|
+
|
|
|
+ //Go_No-go反应抑制测试
|
|
|
+ } else if (Constant.QUEST_TYPE_GO_NO_GO.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<GONOGOEntity> dataList = new ArrayList();
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject jsonObject1 = jsonArray.getJSONObject(i);
|
|
|
+ GONOGOEntity gonogoEntity = new GONOGOEntity();
|
|
|
+ gonogoEntity.setColor(jsonObject1.getString("flag"));
|
|
|
+ gonogoEntity.setRspTime(jsonObject1.getInteger("responseTime"));
|
|
|
+ dataList.add(gonogoEntity);
|
|
|
+ }
|
|
|
+ int go = jsonObject.getInteger("goTotalResponseTime");
|
|
|
+ String nogo = jsonObject.getString("NoGoRightRate");
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("NO-GO信号响应正确率(%)", nogo);
|
|
|
+ resultJson.put("NoGoRightRate", nogo);
|
|
|
+ resultDBJson.put("NO-GO信号响应正确率(%)", nogo);
|
|
|
+ resultMap.put("GO信号响应时", String.valueOf(go));
|
|
|
+ resultJson.put("goTotalResponseTime", String.valueOf(go));
|
|
|
+ resultDBJson.put("GO信号响应时", String.valueOf(go));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_GO_NO_GO + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_GO_NO_GO;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(GONOGOEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_GO_NO_GO), fileName, Constant.SHEET_NAME_GO_NO_GO);
|
|
|
+ //Go-No-go冲动抑制测试(高级版)
|
|
|
+ } else if (Constant.QUEST_TYPE_GO_NO_GO2.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("rawData");
|
|
|
+ List<GONOGO2Entity> dataList = new ArrayList();
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject jsonObject1 = jsonArray.getJSONObject(i);
|
|
|
+ GONOGO2Entity gonogo2Entity = new GONOGO2Entity();
|
|
|
+ if (jsonObject1.getInteger("color") == 0) {
|
|
|
+ gonogo2Entity.setColor("红色");
|
|
|
+ } else {
|
|
|
+ gonogo2Entity.setColor("绿色");
|
|
|
+ }
|
|
|
+ if (jsonObject1.getInteger("arrowDirection") == 0) {
|
|
|
+ gonogo2Entity.setArrowDirection("向左");
|
|
|
+ } else {
|
|
|
+ gonogo2Entity.setArrowDirection("向右");
|
|
|
+ }
|
|
|
+ if (jsonObject1.getInteger("needResponse") == 0) {
|
|
|
+ gonogo2Entity.setNeedResponse("无需反应");
|
|
|
+ } else {
|
|
|
+ gonogo2Entity.setNeedResponse("需反应");
|
|
|
+ }
|
|
|
+ if (!jsonObject1.getString("userDirection").equals("")) {
|
|
|
+ if (jsonObject1.getInteger("userDirection") == 0) {
|
|
|
+ gonogo2Entity.setUserDirection("向左");
|
|
|
+ } else {
|
|
|
+ gonogo2Entity.setUserDirection("向右");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (jsonObject1.getBoolean("responseTrue")) {
|
|
|
+ gonogo2Entity.setResponseTrue("正确");
|
|
|
+ } else {
|
|
|
+ gonogo2Entity.setResponseTrue("错误");
|
|
|
+ }
|
|
|
+ gonogo2Entity.setResponseTime(jsonObject1.getString("responseTime"));
|
|
|
+ dataList.add(gonogo2Entity);
|
|
|
+ }
|
|
|
+ String averageTime = jsonObject.getString("averageTime");
|
|
|
+ String correctPercent = jsonObject.getString("correctPercent");
|
|
|
+
|
|
|
+ correctPercent = correctPercent.replace("%","");
|
|
|
+ double correct = Double.valueOf(correctPercent);
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ correct = Double.parseDouble(df.format(correct));
|
|
|
+ //构建返回新的返回结构"
|
|
|
+ resultJson.put("versionNo","2.0.1");
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ totalScore.put("totalScore",correct);
|
|
|
+ String desc = null;
|
|
|
+ if (correct>90){
|
|
|
+ desc = "优秀等级:您的冲动抑制能力很好,您在生活中行事沉稳专注,凡事自我克制,面对问题能够审慎思考,工作学习很有规划,很有耐心,也很自律,更加经得住诱惑。";
|
|
|
+ }else if(correct>80 && correct<=90){
|
|
|
+ desc = "较优秀等级:您的冲动抑制能力比较好,您在生活中行事比较沉稳专注,遇事比较能够自我克制,面对问题一般也能够审慎思考,工作学习有规划,有耐心,也比较自律,一定程度上能经得住诱惑。";
|
|
|
+ }else if(correct>60 && correct<=80){
|
|
|
+ desc = "一般等级: 您的冲动抑制能力处于一般水平,您在生活中行事有时沉稳专注有时也会分心,遇事有时自我克制有时也有些冲动,工作学习能做到一定程度的自律但有时也会不耐烦。";
|
|
|
+ }else if(correct>50 && correct<=60){
|
|
|
+ desc = "较差等级:您的冲动抑制能力较差,您在生活中行事比较冲动不耐烦,遇事不能做到自我克制,面对问题也不能审慎思考,工作学习缺乏规划和耐心,比较难做到自律。";
|
|
|
+ }else if(correct<=50){
|
|
|
+ desc = "极差等级:您的冲动抑制能力很差,您在生活中行事可能经常冲动不耐烦,遇事易受挫、暴躁,工作学习缺乏耐心,无法专注,社会适应能力差,难以抵制诱惑,遇到情绪问题或生活压力很容易陷入烟酒成瘾。建议您后续加强这方面的训练,生活中遇事三思而后行。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("正确率", correctPercent);
|
|
|
+ resultJson.put("正确率", correctPercent);
|
|
|
+ resultDBJson.put("正确率", correctPercent);
|
|
|
+ resultMap.put("平均反应时", averageTime);
|
|
|
+ resultJson.put("平均反应时", averageTime);
|
|
|
+ resultDBJson.put("平均反应时", averageTime);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_GO_NO_GO2 + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_GO_NO_GO2;
|
|
|
+ datas = dataList.toString();
|
|
|
+ ExcelUtil.createExcelFile(GONOGO2Entity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_GO_NO_GO2), fileName, Constant.SHEET_NAME_GO_NO_GO2);
|
|
|
+ //工作记忆能力测试
|
|
|
+ } else if (Constant.QUEST_TYPE_MEMORY.equals(type)) {
|
|
|
+ List<WebMemoryEntity> dataList = new ArrayList<>();
|
|
|
+ JSONObject jsonObject0 = jsonObject.getJSONObject("data");
|
|
|
+ int[] rightNum0 = {0, 0, 0, 0, 0, 0};
|
|
|
+ int[] rightTime0 = {0, 0, 0, 0, 0, 0};
|
|
|
+ //int [] countTemp0={0,0,0,0,0,0};
|
|
|
+ int[] rightNum1 = {0, 0, 0, 0, 0, 0};
|
|
|
+ int[] rightTime1 = {0, 0, 0, 0, 0, 0};
|
|
|
+ //int [] countTemp1={0,0,0,0,0,0};
|
|
|
+ int[] rightNum2 = {0, 0, 0, 0, 0, 0};
|
|
|
+ int[] rightTime2 = {0, 0, 0, 0, 0, 0};
|
|
|
+ //int [] countTemp2={0,0,0,0,0,0};
|
|
|
+ JSONArray back0 = jsonObject0.getJSONArray("back0");
|
|
|
+ for (int i = 0; i < back0.size(); i++) {
|
|
|
+ //0back 平均响应时长只计算需要响应的,如果需要响应但为响应,按最长时间间隔计算 正确率计算需要响应和不需要响应的
|
|
|
+ JSONArray back0a = back0.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back0a.size(); y++) {
|
|
|
+ JSONObject back0b = back0a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back0b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("0back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ //需要响应且正确响应,响应正确次数+1 ,响应时间累加
|
|
|
+ if (back0b.getString("ifNeedClick").equals("true") && back0b.getString("ifUserClick").equals("true")) {
|
|
|
+ rightNum0[i] += 1;
|
|
|
+ rightTime0[i] += back0b.getInteger("userResponseTime");
|
|
|
+ }
|
|
|
+ // ,字母展示时间+刺激时间=500+1500=2000ms
|
|
|
+ if (back0b.getString("ifNeedClick").equals("true") && back0b.getString("ifUserClick").equals("false")) {
|
|
|
+ //rightTime0[i] += 2000;
|
|
|
+ }
|
|
|
+ //不需要响应且未响应,响应正确次数+1,但响应时间不累加
|
|
|
+ if (back0b.getString("ifNeedClick").equals("false") && back0b.getString("ifUserClick").equals("false")) {
|
|
|
+ rightNum0[i] += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray back1 = jsonObject0.getJSONArray("back1");
|
|
|
+ for (int i = 0; i < back1.size(); i++) {
|
|
|
+ JSONArray back1a = back1.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back1a.size(); y++) {
|
|
|
+ JSONObject back1b = back1a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back1b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("1back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ //dataList.add(back1b.toJavaObject(WebMemoryEntity.class));
|
|
|
+ if (back1b.getString("ifNeedClick").equals("true") && back1b.getString("ifUserClick").equals("true")) {
|
|
|
+ rightNum1[i] += 1;
|
|
|
+ rightTime1[i] += back1b.getInteger("userResponseTime");
|
|
|
+ }
|
|
|
+ if (back1b.getString("ifNeedClick").equals("true") && back1b.getString("ifUserClick").equals("false")) {
|
|
|
+ //rightTime1[i] += 2000;
|
|
|
+ }
|
|
|
+ if (back1b.getString("ifNeedClick").equals("false") && back1b.getString("ifUserClick").equals("false")) {
|
|
|
+ rightNum1[i] += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ JSONArray back2 = jsonObject0.getJSONArray("back2");
|
|
|
+ for (int i = 0; i < back2.size(); i++) {
|
|
|
+ JSONArray back2a = back2.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back2a.size(); y++) {
|
|
|
+ JSONObject back2b = back2a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back2b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("2back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ //dataList.add(back2b.toJavaObject(WebMemoryEntity.class));
|
|
|
+ if (back2b.getString("ifNeedClick").equals("true") && back2b.getString("ifUserClick").equals("true")) {
|
|
|
+ rightNum2[i] += 1;
|
|
|
+ rightTime2[i] += back2b.getInteger("userResponseTime");
|
|
|
+ }
|
|
|
+ if (back2b.getString("ifNeedClick").equals("true") && back2b.getString("ifUserClick").equals("false")) {
|
|
|
+ //rightTime2[i] += 2000;
|
|
|
+ }
|
|
|
+ if (back2b.getString("ifNeedClick").equals("false") && back2b.getString("ifUserClick").equals("false")) {
|
|
|
+ rightNum2[i] += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*for(int i=0;i<back0.size();i++){
|
|
|
+ System.out.println("rightNum0"+i+"------"+rightNum0[i]);
|
|
|
+ System.out.println("rightTime0"+i+"-----------------"+rightTime0[i]);
|
|
|
+
|
|
|
+ }
|
|
|
+ System.out.println("----------------------------------------------");
|
|
|
+ for (int i=0;i<back1.size();i++){
|
|
|
+ System.out.println("rightNum1"+i+"------"+rightNum1[i]);
|
|
|
+ System.out.println("rightTime1"+i+"-----------------"+rightTime1[i]);
|
|
|
+ }
|
|
|
+ System.out.println("----------------------------------------------");
|
|
|
+ for(int i=0;i<back2.size();i++){
|
|
|
+ System.out.println("rightNum2"+i+"------"+rightNum2[i]);
|
|
|
+ System.out.println("rightTime2"+i+"-----------------"+rightTime2[i]);
|
|
|
+ }*/
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ List list = new ArrayList();
|
|
|
+ JSONObject dimension0 = new JSONObject(true);
|
|
|
+ dimension0.put("name","0back");
|
|
|
+
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ Map<String, String> resultMap0 = new LinkedHashMap<>();
|
|
|
+ double back0RightTime = 0;
|
|
|
+ double back0Precision = 0;
|
|
|
+ for (int i = 0; i < back0.size(); i++) {
|
|
|
+ //平均响应时长=所有需要响应的响应时间之和/需要响应的次数
|
|
|
+ back0RightTime += rightNum0[i] == 0 ? 0 : new BigDecimal((double) (rightTime0[i]) / (double) (Constant.CHAR_COUNT / 2)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ //响应正确率=(需要响应且正确响应次数+不需要响应且未响应次数)/所有响应总数
|
|
|
+ back0Precision += new BigDecimal((double) (rightNum0[i] * 100) / (double) (Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+
|
|
|
+ //平均响应时长=所有需要响应的响应时间之和/需要响应的次数
|
|
|
+ resultMap0.put("0-back第"+(i+1)+"组块平均响应时长(ms)",String.valueOf(rightNum0[i]==0?0:new BigDecimal((double)(rightTime0[i])/(double)(Constant.CHAR_COUNT/2)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("0-back第"+(i+1)+"组块平均响应时长(ms)",String.valueOf(rightNum0[i]==0?0:new BigDecimal((double)(rightTime0[i])/(double)(Constant.CHAR_COUNT/2)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ //响应正确率=(需要响应且正确响应次数+不需要响应且未响应次数)/所有响应总数
|
|
|
+ resultMap0.put("0-back第"+(i+1)+"组块响应正确率(%)",String.valueOf(new BigDecimal((double)(rightNum0[i]*100)/(double)(Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("0-back第"+(i+1)+"组块响应正确率(%)",String.valueOf(new BigDecimal((double)(rightNum0[i]*100)/(double)(Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+
|
|
|
+ }
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ //0-back平均响应时长(ms)
|
|
|
+ back0RightTime = Double.parseDouble(df.format(back0RightTime / back0.size()));
|
|
|
+ //0-back正确率
|
|
|
+ back0Precision = Double.parseDouble(df.format(back0Precision / back0.size()));
|
|
|
+ resultMap0.put("0-back平均响应时长(ms)", String.valueOf(back0RightTime));
|
|
|
+ resultDBJson.put("0-back平均响应时长(ms)", String.valueOf(back0RightTime));
|
|
|
+ resultJson.put("back0AverageTime", String.valueOf(back0RightTime));
|
|
|
+ resultMap0.put("0-back正确率", back0Precision + "%");
|
|
|
+ resultDBJson.put("0-back正确率", back0Precision + "%");
|
|
|
+ resultJson.put("back0SuccessRate", back0Precision + "%");
|
|
|
+ resultMapList.add(resultMap0);
|
|
|
+
|
|
|
+
|
|
|
+ dimension0.put("score",back0Precision);
|
|
|
+ String desc = null;
|
|
|
+ if(back0Precision>80 ){
|
|
|
+ desc = "优秀等级:您具有很好的工作记忆能力,您的工作记忆系统容量很大,相比旁人,您能够储存和处理很多的即时信息,比如能记住很长的号码串且记住的时间很长,不容易遗忘。但这并不代表您有过目不忘的记忆能力,不能有这个误区,只是比旁人更能记住更复杂的东西且更不容易遗忘。\n";
|
|
|
+ }else if(back0Precision>60 && back0Precision<=80){
|
|
|
+ desc = "一般等级:您具有一般水平的工作记忆能力,您的工作记忆系统容量并不很大但也不很小,您能储存和处理的即时信息不会太多也不会太少,比如记号码串,您只能记住5~9个数字的号码串,且在一分钟左右会忘记。\n";
|
|
|
+ }else if(back0Precision<=60){
|
|
|
+ desc = "较差等级:您具有较差的工作记忆能力,您的工作记忆系统容量较小,相比旁人,您能够储存和处理的即时信息更少,更难记住东西且往往过目就忘,记住相同难度的内容要花费更多的时间和要更多复述。因此鼓励您后续加强记忆训练,增强记忆能力,掌握对记忆材料深度加工的技巧,掌握记忆材料呈现规律,从而更好记住。\n";
|
|
|
+ }
|
|
|
+ dimension0.put("Describe",desc);
|
|
|
+ dimension0.put("maximum",100);
|
|
|
+ dimension0.put("groupName","第一组");
|
|
|
+
|
|
|
+ JSONObject dimension1 = new JSONObject(true);
|
|
|
+ dimension1.put("name","1back");
|
|
|
+
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ double back1RightTime = 0;
|
|
|
+ double back1Precision = 0;
|
|
|
+ for (int i = 0; i < back1.size(); i++) {
|
|
|
+ back1RightTime += rightNum1[i] == 0 ? 0 : new BigDecimal((double) (rightTime1[i]) / (double) (Constant.CHAR_COUNT / 2)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ back1Precision += new BigDecimal((double) (rightNum1[i] * 100) / (double) (Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+
|
|
|
+ }
|
|
|
+ //1-back平均响应时长(ms)
|
|
|
+ back1RightTime = Double.parseDouble(df.format(back1RightTime / back1.size()));
|
|
|
+ //1-back正确率
|
|
|
+ back1Precision = Double.parseDouble(df.format(back1Precision / back1.size()));
|
|
|
+ resultMap1.put("1-back平均响应时长(ms)", String.valueOf(back1RightTime));
|
|
|
+ resultDBJson.put("1-back平均响应时长(ms)", String.valueOf(back1RightTime));
|
|
|
+ resultJson.put("back1AverageTime", String.valueOf(back1RightTime));
|
|
|
+ resultMap1.put("1-back正确率", back1Precision + "%");
|
|
|
+ resultDBJson.put("1-back正确率", back1Precision + "%");
|
|
|
+ resultJson.put("back1SuccessRate", back1Precision + "%");
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+
|
|
|
+ dimension1.put("score",back1Precision);
|
|
|
+ String desc2 = null;
|
|
|
+ if(back1Precision>80 ){
|
|
|
+ desc2 = "优秀等级:您具有很好的工作记忆能力,您的工作记忆系统容量很大,相比旁人,您能够储存和处理很多的即时信息,比如能记住很长的号码串且记住的时间很长,不容易遗忘。但这并不代表您有过目不忘的记忆能力,不能有这个误区,只是比旁人更能记住更复杂的东西且更不容易遗忘。\n";
|
|
|
+ }else if(back1Precision>60 && back1Precision<=80){
|
|
|
+ desc2 = "一般等级:您具有一般水平的工作记忆能力,您的工作记忆系统容量并不很大但也不很小,您能储存和处理的即时信息不会太多也不会太少,比如记号码串,您只能记住5~9个数字的号码串,且在一分钟左右会忘记。\n";
|
|
|
+ }else if(back1Precision<=60){
|
|
|
+ desc2 = "较差等级:您具有较差的工作记忆能力,您的工作记忆系统容量较小,相比旁人,您能够储存和处理的即时信息更少,更难记住东西且往往过目就忘,记住相同难度的内容要花费更多的时间和要更多复述。因此鼓励您后续加强记忆训练,增强记忆能力,掌握对记忆材料深度加工的技巧,掌握记忆材料呈现规律,从而更好记住。\n";
|
|
|
+ }
|
|
|
+ dimension1.put("Describe",desc2);
|
|
|
+ dimension1.put("maximum",100);
|
|
|
+ dimension1.put("groupName","第二组");
|
|
|
+
|
|
|
+
|
|
|
+ JSONObject dimension2= new JSONObject(true);
|
|
|
+ dimension2.put("name","2back");
|
|
|
+ Map<String, String> resultMap2 = new LinkedHashMap<>();
|
|
|
+ double back2RightTime = 0;
|
|
|
+ double back2Precision = 0;
|
|
|
+ for (int i = 0; i < back2.size(); i++) {
|
|
|
+ back2RightTime += rightNum2[i] == 0 ? 0 : new BigDecimal((double) (rightTime2[i]) / (double) (Constant.CHAR_COUNT / 2)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ back2Precision += new BigDecimal((double) (rightNum2[i] * 100) / (double) (Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ resultMap2.put("2-back第"+(i+1)+"组块平均响应时长(ms)",String.valueOf(rightNum2[i]==0?0:new BigDecimal((double)(rightTime2[i])/(double)(Constant.CHAR_COUNT/2)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("2-back第"+(i+1)+"组块平均响应时长(ms)",String.valueOf(rightNum2[i]==0?0:new BigDecimal((double)(rightTime2[i])/(double)(Constant.CHAR_COUNT/2)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap2.put("2-back第"+(i+1)+"组块响应正确率(%)",String.valueOf(new BigDecimal((double)(rightNum2[i]*100)/(double)(Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("2-back第"+(i+1)+"组块响应正确率(%)",String.valueOf(new BigDecimal((double)(rightNum2[i]*100)/(double)(Constant.CHAR_COUNT)).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //2-back平均响应时长(ms)
|
|
|
+ back2RightTime = Double.parseDouble(df.format(back2RightTime / back2.size()));
|
|
|
+ //2-back正确率
|
|
|
+ back2Precision = Double.parseDouble(df.format(back2Precision / back2.size()));
|
|
|
+
|
|
|
+
|
|
|
+ dimension2.put("score",back2Precision);
|
|
|
+ String desc3 = null;
|
|
|
+ if(back2Precision>80 ){
|
|
|
+ desc3 = "优秀等级:您具有很好的工作记忆能力,您的工作记忆系统容量很大,相比旁人,您能够储存和处理很多的即时信息,比如能记住很长的号码串且记住的时间很长,不容易遗忘。但这并不代表您有过目不忘的记忆能力,不能有这个误区,只是比旁人更能记住更复杂的东西且更不容易遗忘。\n";
|
|
|
+ }else if(back2Precision>60 && back2Precision<=80){
|
|
|
+ desc3 = "一般等级:您具有一般水平的工作记忆能力,您的工作记忆系统容量并不很大但也不很小,您能储存和处理的即时信息不会太多也不会太少,比如记号码串,您只能记住5~9个数字的号码串,且在一分钟左右会忘记。\n";
|
|
|
+ }else if(back2Precision<=60){
|
|
|
+ desc3 = "较差等级:您具有较差的工作记忆能力,您的工作记忆系统容量较小,相比旁人,您能够储存和处理的即时信息更少,更难记住东西且往往过目就忘,记住相同难度的内容要花费更多的时间和要更多复述。因此鼓励您后续加强记忆训练,增强记忆能力,掌握对记忆材料深度加工的技巧,掌握记忆材料呈现规律,从而更好记住。\n";
|
|
|
+ }
|
|
|
+ dimension2.put("Describe",desc3);
|
|
|
+ dimension2.put("maximum",100);
|
|
|
+ dimension2.put("groupName","第三组");
|
|
|
+ list.add(dimension0);
|
|
|
+ list.add(dimension1);
|
|
|
+ list.add(dimension2);
|
|
|
+ resultJson.put("dimensions",list);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",false);
|
|
|
+ ifShow.put("dimensions",true);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+ resultMap2.put("2-back平均响应时长(ms)", String.valueOf(back2RightTime));
|
|
|
+ resultDBJson.put("2-back平均响应时长(ms)", String.valueOf(back2RightTime));
|
|
|
+ resultJson.put("back2AverageTime", String.valueOf(back2RightTime));
|
|
|
+ resultMap2.put("2-back正确率", back2Precision + "%");
|
|
|
+ resultDBJson.put("2-back正确率", back2Precision + "%");
|
|
|
+ resultJson.put("back2SuccessRate", back2Precision + "%");
|
|
|
+ resultMapList.add(resultMap2);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MEMORY + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MEMORY;
|
|
|
+ datas = jsonObject0.toString();
|
|
|
+ ExcelUtil.createExcelFile(WebMemoryEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MEMORY), fileName, Constant.SHEET_NAME_MEMORY);
|
|
|
+ //工作记忆能力测试(亚太)
|
|
|
+ } else if (Constant.QUEST_TYPE_MEMORY_YATAI.equals(type)) {
|
|
|
+ List<WebMemoryEntity> dataList = new ArrayList<>();
|
|
|
+ JSONObject jsonObject0 = jsonObject.getJSONObject("data");
|
|
|
+ JSONArray back0 = jsonObject0.getJSONArray("back0");
|
|
|
+ for (int i = 0; i < back0.size(); i++) {
|
|
|
+ JSONArray back0a = back0.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back0a.size(); y++) {
|
|
|
+ JSONObject back0b = back0a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back0b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("0back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray back1 = jsonObject0.getJSONArray("back1");
|
|
|
+ for (int i = 0; i < back1.size(); i++) {
|
|
|
+ JSONArray back1a = back1.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back1a.size(); y++) {
|
|
|
+ JSONObject back1b = back1a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back1b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("1back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray back2 = jsonObject0.getJSONArray("back2");
|
|
|
+ for (int i = 0; i < back2.size(); i++) {
|
|
|
+ JSONArray back2a = back2.getJSONArray(i);
|
|
|
+ for (int y = 0; y < back2a.size(); y++) {
|
|
|
+ JSONObject back2b = back2a.getJSONObject(y);
|
|
|
+ WebMemoryEntity webMemoryEntity = new WebMemoryEntity();
|
|
|
+ webMemoryEntity = back2b.toJavaObject(WebMemoryEntity.class);
|
|
|
+ webMemoryEntity.setDiffLevel("2back");
|
|
|
+ dataList.add(webMemoryEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray totalIndexResult = jsonObject.getJSONArray("totalIndexResult");
|
|
|
+ JSONObject resultBack0 = totalIndexResult.getJSONObject(0);
|
|
|
+ Map<String, String> resultMap0 = new LinkedHashMap<>();
|
|
|
+ resultMap0.put("0-back难度等级", String.valueOf(resultBack0.get("diffLevel")));
|
|
|
+ resultDBJson.put("0-back难度等级", String.valueOf(resultBack0.get("diffLevel")));
|
|
|
+ resultJson.put("0-back难度等级", String.valueOf(resultBack0.get("diffLevel")));
|
|
|
+ resultMap0.put("0-back总测试数", String.valueOf(resultBack0.get("totalTestCount")));
|
|
|
+ resultDBJson.put("0-back总测试数", String.valueOf(resultBack0.get("totalTestCount")));
|
|
|
+ resultJson.put("0-back总测试数", String.valueOf(resultBack0.get("totalTestCount")));
|
|
|
+ resultMap0.put("0-back正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultDBJson.put("0-back正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultJson.put("0-back正确数", String.valueOf(resultBack0.get("rightCount")));
|
|
|
+ resultMap0.put("0-back正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultDBJson.put("0-back正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultJson.put("0-back正确率", String.valueOf(resultBack0.get("rightRate")));
|
|
|
+ resultMap0.put("0-back平均反应时(ms)", String.valueOf(resultBack0.get("averageResponseTime")));
|
|
|
+ resultDBJson.put("0-back平均反应时(ms)", String.valueOf(resultBack0.get("averageResponseTime")));
|
|
|
+ resultJson.put("0-back平均反应时(ms)", String.valueOf(resultBack0.get("averageResponseTime")));
|
|
|
+ resultMap0.put("0-back测试用时", String.valueOf(resultBack0.get("testTotalTime")));
|
|
|
+ resultDBJson.put("0-back测试用时", String.valueOf(resultBack0.get("testTotalTime")));
|
|
|
+ resultJson.put("0-back测试用时", String.valueOf(resultBack0.get("testTotalTime")));
|
|
|
+ resultMapList.add(resultMap0);
|
|
|
+ JSONObject resultBack1 = totalIndexResult.getJSONObject(1);
|
|
|
+ Map<String, String> resultMap1 = new LinkedHashMap<>();
|
|
|
+ resultMap1.put("1-back难度等级", String.valueOf(resultBack1.get("diffLevel")));
|
|
|
+ resultDBJson.put("1-back难度等级", String.valueOf(resultBack1.get("diffLevel")));
|
|
|
+ resultJson.put("1-back难度等级", String.valueOf(resultBack1.get("diffLevel")));
|
|
|
+ resultMap1.put("1-back总测试数", String.valueOf(resultBack1.get("totalTestCount")));
|
|
|
+ resultDBJson.put("1-back总测试数", String.valueOf(resultBack1.get("totalTestCount")));
|
|
|
+ resultJson.put("1-back总测试数", String.valueOf(resultBack1.get("totalTestCount")));
|
|
|
+ resultMap1.put("1-back正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultDBJson.put("1-back正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultJson.put("1-back正确数", String.valueOf(resultBack1.get("rightCount")));
|
|
|
+ resultMap1.put("1-back正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultDBJson.put("1-back正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultJson.put("1-back正确率", String.valueOf(resultBack1.get("rightRate")));
|
|
|
+ resultMap1.put("1-back平均反应时(ms)", String.valueOf(resultBack1.get("averageResponseTime")));
|
|
|
+ resultDBJson.put("1-back平均反应时(ms)", String.valueOf(resultBack1.get("averageResponseTime")));
|
|
|
+ resultJson.put("1-back平均反应时(ms)", String.valueOf(resultBack1.get("averageResponseTime")));
|
|
|
+ resultMap1.put("1-back测试用时", String.valueOf(resultBack1.get("testTotalTime")));
|
|
|
+ resultDBJson.put("1-back测试用时", String.valueOf(resultBack1.get("testTotalTime")));
|
|
|
+ resultJson.put("1-back测试用时", String.valueOf(resultBack1.get("testTotalTime")));
|
|
|
+ resultMapList.add(resultMap1);
|
|
|
+ JSONObject resultBack2 = totalIndexResult.getJSONObject(2);
|
|
|
+ Map<String, String> resultMap2 = new LinkedHashMap<>();
|
|
|
+ resultMap2.put("2-back难度等级", String.valueOf(resultBack2.get("diffLevel")));
|
|
|
+ resultDBJson.put("2-back难度等级", String.valueOf(resultBack2.get("diffLevel")));
|
|
|
+ resultJson.put("2-back难度等级", String.valueOf(resultBack2.get("diffLevel")));
|
|
|
+ resultMap2.put("2-back总测试数", String.valueOf(resultBack2.get("totalTestCount")));
|
|
|
+ resultDBJson.put("2-back总测试数", String.valueOf(resultBack2.get("totalTestCount")));
|
|
|
+ resultJson.put("2-back总测试数", String.valueOf(resultBack2.get("totalTestCount")));
|
|
|
+ resultMap2.put("2-back正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultDBJson.put("2-back正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultJson.put("2-back正确数", String.valueOf(resultBack2.get("rightCount")));
|
|
|
+ resultMap2.put("2-back正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultDBJson.put("2-back正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultJson.put("2-back正确率", String.valueOf(resultBack2.get("rightRate")));
|
|
|
+ resultMap2.put("2-back平均反应时(ms)", String.valueOf(resultBack2.get("averageResponseTime")));
|
|
|
+ resultDBJson.put("2-back平均反应时(ms)", String.valueOf(resultBack2.get("averageResponseTime")));
|
|
|
+ resultJson.put("2-back平均反应时(ms)", String.valueOf(resultBack2.get("averageResponseTime")));
|
|
|
+ resultMap2.put("2-back测试用时", String.valueOf(resultBack2.get("testTotalTime")));
|
|
|
+ resultDBJson.put("2-back测试用时", String.valueOf(resultBack2.get("testTotalTime")));
|
|
|
+ resultJson.put("2-back测试用时", String.valueOf(resultBack2.get("testTotalTime")));
|
|
|
+ resultMapList.add(resultMap2);
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_MEMORY_YATAI + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_MEMORY_YATAI;
|
|
|
+ datas = jsonObject0.toString();
|
|
|
+ ExcelUtil.createExcelFile(WebMemoryEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MEMORY), fileName, Constant.SHEET_NAME_MEMORY_YATAI);
|
|
|
+ //精神运动警觉度测试
|
|
|
+ } else if (Constant.QUEST_TYPE_ALERTNESS.equals(type)) {
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ //总时长
|
|
|
+ int allTime = 0;
|
|
|
+ //500ms- 1000ms 次数
|
|
|
+ int time500 = 0;
|
|
|
+ //1000ms 次数
|
|
|
+ int time1000 = 0;
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ List<ObjectEntity> dataList = jsonArray.toJavaList(ObjectEntity.class);
|
|
|
+ for (ObjectEntity roa : dataList) {
|
|
|
+ int temp = Integer.parseInt(roa.getValue());
|
|
|
+ allTime += temp;
|
|
|
+ if (temp > 500 && temp < 1000) {
|
|
|
+ time500 += 1;
|
|
|
+ } else if (temp >= 1000) {
|
|
|
+ time1000 += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("超过0.5秒的比例", String.valueOf(new BigDecimal((double) time500 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("超过0.5秒的比例", String.valueOf(new BigDecimal((double) time500 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("超过0.5秒的比例", String.valueOf(new BigDecimal((double) time500 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap.put("超过1秒的比例", String.valueOf(new BigDecimal((double) time1000 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("超过1秒的比例", String.valueOf(new BigDecimal((double) time1000 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("超过1秒的比例", String.valueOf(new BigDecimal((double) time1000 / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap.put("平均时长(ms)", String.valueOf(new BigDecimal((double) allTime / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("平均时长(ms)", String.valueOf(new BigDecimal((double) allTime / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("平均时长(ms)", String.valueOf(new BigDecimal((double) allTime / (double) dataList.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ALERTNESS + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ALERTNESS;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ALERTNESS), fileName, Constant.SHEET_NAME_ALERTNESS);
|
|
|
+ //精神运动警觉度测试(亚太)
|
|
|
+ } else if (Constant.QUEST_TYPE_ALERTNESS_YATAI.equals(type)) {
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ //有效总时长
|
|
|
+ int allTime = 0;
|
|
|
+ //大于600ms次数
|
|
|
+ int time600 = 0;
|
|
|
+ //最快
|
|
|
+ int fast = 0;
|
|
|
+ //最慢
|
|
|
+ int slow = 0;
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ List<ObjectEntity> dataList = jsonArray.toJavaList(ObjectEntity.class);
|
|
|
+ List<ObjectEntity> objectEntities = new ArrayList<>();
|
|
|
+ List list = new ArrayList();
|
|
|
+ for (ObjectEntity roa : dataList) {
|
|
|
+ int temp = Integer.parseInt(roa.getValue());
|
|
|
+ if (temp >= 100) {
|
|
|
+ allTime += temp;
|
|
|
+ list.add(temp);
|
|
|
+ //objectEntities.add(roa);
|
|
|
+ if (temp > 600) {
|
|
|
+ time600 += 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //最快和最慢10%个数
|
|
|
+ int a = Math.round(list.size() / 10);
|
|
|
+ Collections.sort(list);
|
|
|
+ for (int i = 0; i < a; i++) {
|
|
|
+ fast += (int) list.get(i);
|
|
|
+ int y = i + 1;
|
|
|
+ slow += (int) list.get(list.size() - y);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("平均反应时(ms)", String.valueOf(new BigDecimal((double) allTime / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("平均反应时(ms)", String.valueOf(new BigDecimal((double) allTime / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("平均反应时(ms)", String.valueOf(new BigDecimal((double) allTime / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap.put("最快10%反应时(ms)", String.valueOf(new BigDecimal((double) fast / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("最快10%反应时(ms)", String.valueOf(new BigDecimal((double) fast / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("最快10%反应时(ms)", String.valueOf(new BigDecimal((double) fast / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap.put("最慢10%反应时(ms)", String.valueOf(new BigDecimal((double) slow / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("最慢10%反应时(ms)", String.valueOf(new BigDecimal((double) slow / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("最慢10%反应时(ms)", String.valueOf(new BigDecimal((double) slow / (double) a).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMap.put("忽视频次", String.valueOf(new BigDecimal((double) time600 / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultDBJson.put("忽视频次", String.valueOf(new BigDecimal((double) time600 / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultJson.put("忽视频次", String.valueOf(new BigDecimal((double) time600 / (double) list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()));
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ALERTNESS_YATAI + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ALERTNESS_YATAI;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ALERTNESS), fileName, Constant.SHEET_NAME_ALERTNESS_YATAI);
|
|
|
+ //连续加法测试
|
|
|
+ } else if (Constant.QUEST_TYPE_ADDITION.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ //测试者完成的题目总数
|
|
|
+ int totalNum = 0;
|
|
|
+ //总正确数
|
|
|
+ int rightNum = 0;
|
|
|
+ //得分之和
|
|
|
+ int totalScoreTemp = 0;
|
|
|
+ //最终得分
|
|
|
+ String score = "";
|
|
|
+ //double score = 0;
|
|
|
+ if (jsonObject.containsKey("total")) {
|
|
|
+ totalNum = jsonObject.getInteger("total");
|
|
|
+ }
|
|
|
+ if (jsonObject.containsKey("score")) {
|
|
|
+ score = jsonObject.getString("score");
|
|
|
+ //score = jsonObject.getInteger("score");
|
|
|
+ }
|
|
|
+ List<ObjectEntity> dataList = jsonArray.toJavaList(ObjectEntity.class);
|
|
|
+ if (dataList != null && dataList.size() > 0) {
|
|
|
+
|
|
|
+ for (ObjectEntity object : dataList) {
|
|
|
+ rightNum = Integer.parseInt(object.getValue()) + rightNum;
|
|
|
+ //totalScoreTemp = totalScoreTemp + Utils.x_n(2,Integer.parseInt(object.getKey())-2) * Integer.parseInt(object.getValue());
|
|
|
+ }
|
|
|
+ //score = Utils.loga_n(2,totalScoreTemp,2);
|
|
|
+ }
|
|
|
+ /*DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ score = Double.parseDouble(df.format(score));*/
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultJson.put("总分", score);
|
|
|
+ resultMap.put("题目总数", String.valueOf(totalNum));
|
|
|
+ resultDBJson.put("题目总数", String.valueOf(totalNum));
|
|
|
+ resultJson.put("题目总数", String.valueOf(totalNum));
|
|
|
+ resultMap.put("总正确数", String.valueOf(rightNum));
|
|
|
+ resultDBJson.put("总正确数", String.valueOf(rightNum));
|
|
|
+ resultJson.put("总正确数", String.valueOf(rightNum));
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ADDITION + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ADDITION;
|
|
|
+ //System.out.println(totalScoreTemp);
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ADDITION), fileName, Constant.SHEET_NAME_ADDITION);
|
|
|
+ //风险决策测试
|
|
|
+ } else if (Constant.QUEST_TYPE_RDT.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("rawData");
|
|
|
+ List<RDTEntity> rdtEntityList = jsonArray.toJavaList(RDTEntity.class);
|
|
|
+ double totalEarned = jsonObject.getDouble("totalEarned");
|
|
|
+ int totalAerated = jsonObject.getInteger("totalAerated");
|
|
|
+ double BART = 0;
|
|
|
+ for (RDTEntity rdtent:rdtEntityList){
|
|
|
+ if (!rdtent.getExplosion()){
|
|
|
+ BART ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ if (BART != 0){
|
|
|
+ BART = Double.parseDouble(df.format(10 / BART));
|
|
|
+ }else {
|
|
|
+ BART = 10;
|
|
|
+ }
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",BART);
|
|
|
+
|
|
|
+ if (BART>4){
|
|
|
+ desc = "风险偏好决策风格:您在决策时比较冒险激进,会更看重失去的部分,因为不愿意失去而甘愿冒更大风险。比如给你两种选择,一种是给你100%的几率拿走50元,另一种是给你两个盲盒,一个盲盒里有500块,一个盲盒里一分钱没有,对于您这种决策风格的人会更倾向选第二种。";
|
|
|
+ }else if(BART>1 && BART<=4){
|
|
|
+ desc = "中性决策风格:您在决策时不会太保守也不会太冒险,做事追求稳中求进,是非常理想的决策风格。";
|
|
|
+ }else if(BART>0 && BART<=1){
|
|
|
+ desc = "风险规避决策风格:您在决策时比较保守谨慎,不会太冒险,更看重能获得的部分,比如在投资时您会更看重确定性的回报而不是不确定的期望收益。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ //维度得分及解读模块
|
|
|
+ JSONArray dimensions = new JSONArray();
|
|
|
+ JSONObject scoreA = new JSONObject(true);
|
|
|
+ scoreA.put("name","得分");
|
|
|
+ scoreA.put("score",String.valueOf(totalEarned));
|
|
|
+ scoreA.put("Describe","无");
|
|
|
+ scoreA.put("maximum","无");
|
|
|
+ scoreA.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreA);
|
|
|
+ JSONObject scoreB = new JSONObject(true);
|
|
|
+ scoreB.put("name","总点击次数");
|
|
|
+ scoreB.put("score",String.valueOf(totalAerated));
|
|
|
+ scoreB.put("Describe","无");
|
|
|
+ scoreB.put("maximum","无");
|
|
|
+ scoreB.put("groupName","第一组");
|
|
|
+ dimensions.add(scoreB);
|
|
|
+ resultJson.put("dimensions", dimensions);
|
|
|
+
|
|
|
+
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",true);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", String.valueOf(totalEarned));
|
|
|
+ resultJson.put("总分", String.valueOf(totalEarned));
|
|
|
+ resultDBJson.put("总分", String.valueOf(totalEarned));
|
|
|
+ resultMap.put("总点击次数", String.valueOf(totalAerated));
|
|
|
+ resultJson.put("总点击次数", String.valueOf(totalAerated));
|
|
|
+ resultDBJson.put("总点击次数", String.valueOf(totalAerated));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_RDT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_RDT;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(RDTEntity.class, rdtEntityList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_RDT), fileName, Constant.SHEET_NAME_RDT);
|
|
|
+ //时间知觉能力测试
|
|
|
+ } else if (Constant.QUEST_TYPE_SC.equals(type)) {
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("results");
|
|
|
+ List<SCEntity> scEntityList = jsonArray.toJavaList(SCEntity.class);
|
|
|
+ int num = 0;
|
|
|
+ int errorNum = 0;
|
|
|
+ for (SCEntity scEntity : scEntityList) {
|
|
|
+ if (!scEntity.getError().equals("NULL")) {
|
|
|
+ num += 1;
|
|
|
+ if (Integer.valueOf(scEntity.getError()) < 0) {
|
|
|
+ errorNum -= Integer.valueOf(scEntity.getError());
|
|
|
+ } else {
|
|
|
+ errorNum += Integer.valueOf(scEntity.getError());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ double correct = 0;
|
|
|
+ if (num != 0){
|
|
|
+ correct = Double.parseDouble(df.format(errorNum / num));
|
|
|
+ }
|
|
|
+
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ String desc = null;
|
|
|
+ totalScore.put("totalScore",correct);
|
|
|
+
|
|
|
+ if (correct>500){
|
|
|
+ desc = "极差等级:您天生时间知觉敏锐程度很差,几乎不能感知自己的生理时钟,在生活工作中也几乎不能把握时间节奏,比如时间一点点过去您并没有觉察,时间感很差,生活缺乏计划,该睡觉的时候可能在打游戏或者做其他的事,该吃饭的时候也不吃饭。您很需要加强时间感知力训练。\n";
|
|
|
+ }else if(correct>400 && correct<=500){
|
|
|
+ desc = "较差等级:您天生时间知觉敏锐程度较差,不能够很好地感知自己的生理时钟,在生活工作中也不能很好地把握时间节奏,比如有时候时间不知不觉过去很久自己也不知道怎么回事,时间感较差,生活缺乏计划,可能需要加强时间感训练。\n";
|
|
|
+ }else if(correct>200 && correct<=400){
|
|
|
+ desc = "一般等级:您天生时间知觉敏锐程度一般,对自己生理时钟的感知能力也处在一般水平,在生活工作中不能够很好但能够较好地把握时间节奏。比如,每天来回上班地点的行程时间,您内心会大概有个计算。\n";
|
|
|
+ }else if(correct>100 && correct<=200){
|
|
|
+ desc = "较优秀等级:您在一定程度上忠于自己的生理时钟,属于天生时间知觉比较敏锐的人,在生活工作中对时间节奏把握得比较准确。比如,您平常需要吃早餐的时间到了,您可能会感到饿并且要吃点东西。每天来回上班地点的行程时间,您内心也能大概较好地计算。\n";
|
|
|
+ }else if(correct<=100){
|
|
|
+ desc = "优秀等级:您很忠于自己的生理时钟,属于天生时间知觉相当敏锐的人,在生活工作中对时间节奏把握得很好很准确。比如,在您平常需要吃早餐的时间,您就会感到饿。每天来回上班地点的行程时间,您内心也会计算得很好。\n";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("平均反应误差", String.valueOf(correct));
|
|
|
+ resultJson.put("平均反应误差", String.valueOf(correct));
|
|
|
+ resultDBJson.put("平均反应误差", String.valueOf(correct));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_SC + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_SC;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SCEntity.class, scEntityList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_SC), fileName, Constant.SHEET_NAME_SC);
|
|
|
+ //枪林弹雨
|
|
|
+ } else if (Constant.QUEST_TYPE_GBE.equals(type)) {
|
|
|
+ JSONObject userResponseData = jsonObject.getJSONObject("userResponseData");
|
|
|
+ JSONObject responseTime = userResponseData.getJSONObject("responseTime");
|
|
|
+ String responseTimeDanger1 = responseTime.getString("response1");
|
|
|
+ String responseTimeDanger2 = responseTime.getString("response2");
|
|
|
+ String responseTimeDanger3 = responseTime.getString("response3");
|
|
|
+ String responseTimeDanger4 = responseTime.getString("response4");
|
|
|
+ String level = userResponseData.getString("level");
|
|
|
+ String isPassed = userResponseData.getString("isPassed");
|
|
|
+ String score = userResponseData.getString("score");
|
|
|
+ String errorNum = userResponseData.getString("errorNum");
|
|
|
+ String roadNum = userResponseData.getString("roadNum");
|
|
|
+ String rightRate = userResponseData.getString("rightRate");
|
|
|
+ GBEEntity gbeEntity = new GBEEntity(level, isPassed, responseTimeDanger1, responseTimeDanger2, responseTimeDanger3, responseTimeDanger4, score, errorNum, roadNum, rightRate);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("关卡", String.valueOf(level));
|
|
|
+ resultJson.put("关卡", String.valueOf(level));
|
|
|
+ resultDBJson.put("关卡", String.valueOf(level));
|
|
|
+ resultMap.put("是否通过", isPassed.equals("true") ? "通过" : "未通过");
|
|
|
+ resultJson.put("是否通过", isPassed.equals("true") ? "通过" : "未通过");
|
|
|
+ resultDBJson.put("是否通过", isPassed.equals("true") ? "通过" : "未通过");
|
|
|
+ resultMap.put("总分", String.valueOf(score));
|
|
|
+ resultJson.put("总分", String.valueOf(score));
|
|
|
+ resultDBJson.put("总分", String.valueOf(score));
|
|
|
+ resultMap.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultJson.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultDBJson.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultMap.put("道路个数", String.valueOf(roadNum));
|
|
|
+ resultJson.put("道路个数", String.valueOf(roadNum));
|
|
|
+ resultDBJson.put("道路个数", String.valueOf(rightRate));
|
|
|
+ resultMap.put("正确率", String.valueOf(rightRate));
|
|
|
+ resultJson.put("正确率", String.valueOf(rightRate));
|
|
|
+ resultDBJson.put("正确率", String.valueOf(roadNum));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ List<GBEEntity> gbeEntities = new ArrayList<>();
|
|
|
+ gbeEntities.add(gbeEntity);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_GBE + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_GBE;
|
|
|
+ datas = userResponseData.toString();
|
|
|
+ ExcelUtil.createExcelFile(GBEEntity.class, gbeEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_GBE), fileName, Constant.SHEET_NAME_GBE);
|
|
|
+ //空间记忆能力测试
|
|
|
+ } else if (Constant.QUEST_TYPE_REM.equals(type)) {
|
|
|
+
|
|
|
+ String score = jsonObject.getString("userScore");
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = jsonArray.toJavaList(SHAPE2Entity.class);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_REM + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_REM;
|
|
|
+ int totalTime = 0;
|
|
|
+ for (SHAPE2Entity shape2Entity : shape2Entities) {
|
|
|
+ totalTime += shape2Entity.getResponseTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ double meanTime = 0;
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ if (shape2Entities.size() != 0) {
|
|
|
+ meanTime = Double.parseDouble(df.format(totalTime / shape2Entities.size()));
|
|
|
+ }
|
|
|
+ resultJson.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ JSONArray totalScores = new JSONArray();
|
|
|
+ JSONObject totalScore = new JSONObject(true);
|
|
|
+ score = score.replace("%","");
|
|
|
+ double correct = Double.valueOf(score);
|
|
|
+ correct = Double.parseDouble(df.format(correct));
|
|
|
+ totalScore.put("totalScore",correct);
|
|
|
+ String desc = null;
|
|
|
+ if (correct>90){
|
|
|
+ desc = "优秀等级:您的空间感很强,比如您进入新环境生活,您能够很快记住当地地理位置、方位,哪里有什么商店、医院学校之类。您的方向感很好,在出行时不会迷路,无论是去哪里,您总能找到又好又快的路线。";
|
|
|
+ }else if(correct>80 && correct<=90){
|
|
|
+ desc = "较优秀等级:您的空间感较强,进入新环境生活工作,您能够较快地记住并找到当地商店、医院、学校等地方。您的方向感较好,在出行时一般不会迷路,且能找到较好较快的出行路线。";
|
|
|
+ }else if(correct>60 && correct<=80){
|
|
|
+ desc = "一般等级:您的空间感一般,不是很强也不是很差,在一个新环境,通过一定时间的适应,您也能够较好地记住当地学校、医院、商店等的方位。您的方向感不是很好也不是很差,您在出行时一般也很少迷路,通过一定思索也能选择合适的出行路线。";
|
|
|
+ }else if(correct>50 && correct<=60){
|
|
|
+ desc = "较差等级:您的空间感较差,进入新环境生活工作,您不能够很好地记住当地商店、医院、学校等地方,需要借助一定帮助才能找到。您的方向感较差,在出行有时会迷路,找到合适的出行路线较困难。";
|
|
|
+ }else if(correct<=50){
|
|
|
+ desc = "极差等级:您的空间感极差,进入新环境生活工作,您很难记住当地商店、医院、学校等地方,在很长一段时间内需要借助帮助才能找到。您的方向感极差,在出行时可能经常会迷路,找到合适的出行路线也可能非常困难。";
|
|
|
+ }
|
|
|
+ totalScore.put("totalScoreDesc",desc);
|
|
|
+ totalScores.add(totalScore);
|
|
|
+ resultJson.put("totalScore",totalScores);
|
|
|
+ JSONObject ifShow = new JSONObject(true);
|
|
|
+ ifShow.put("totalScore",true);
|
|
|
+ ifShow.put("dimensions",false);
|
|
|
+ ifShow.put("note",false);
|
|
|
+ ifShow.put("radar",false);
|
|
|
+ ifShow.put("table",false);
|
|
|
+ resultJson.put("ifShow",ifShow);
|
|
|
+ resultDBJson = resultJson;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("versionNo",Constant.COGNITION_RESULT_VERSION);
|
|
|
+ resultMap.put("totalScore",totalScore.toString());
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultJson.put("userScore", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultMap.put("平均反应时", String.valueOf(meanTime));
|
|
|
+ resultJson.put("meanTime", String.valueOf(meanTime));
|
|
|
+ resultDBJson.put("平均反应时", String.valueOf(meanTime));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(SHAPE2Entity.class, shape2Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_REM), fileName, Constant.SHEET_NAME_REM);
|
|
|
+ //悬旌万里
|
|
|
+ } else if (Constant.QUEST_TYPE_XJWL.equals(type)) {
|
|
|
+ JSONObject data = jsonObject.getJSONObject("data");
|
|
|
+ XuanJingWanLiEntity xuanJingWanLiEntity = data.toJavaObject(XuanJingWanLiEntity.class);
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_XJWL + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_XJWL;
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", xuanJingWanLiEntity.getFenFen());
|
|
|
+ resultMap.put("关卡数", xuanJingWanLiEntity.getNanNan() + "");
|
|
|
+ resultMap.put("正确率", xuanJingWanLiEntity.getZhengQue());
|
|
|
+ resultMap.put("正确个数", xuanJingWanLiEntity.getZhengZheng() + "");
|
|
|
+ resultMap.put("错误个数", xuanJingWanLiEntity.getCuo() + "");
|
|
|
+ resultJson.put("总分", xuanJingWanLiEntity.getFenFen());
|
|
|
+ resultJson.put("关卡数", xuanJingWanLiEntity.getNanNan() + "");
|
|
|
+ resultJson.put("正确率", xuanJingWanLiEntity.getZhengQue());
|
|
|
+ resultJson.put("正确个数", xuanJingWanLiEntity.getZhengZheng() + "");
|
|
|
+ resultJson.put("错误个数", xuanJingWanLiEntity.getCuo() + "");
|
|
|
+ resultDBJson.put("总分", xuanJingWanLiEntity.getFenFen());
|
|
|
+ resultDBJson.put("关卡数", xuanJingWanLiEntity.getNanNan() + "");
|
|
|
+ resultDBJson.put("正确率", xuanJingWanLiEntity.getZhengQue());
|
|
|
+ resultDBJson.put("正确个数", xuanJingWanLiEntity.getZhengZheng() + "");
|
|
|
+ resultDBJson.put("错误个数", xuanJingWanLiEntity.getCuo() + "");
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = data.toString();
|
|
|
+ List<XuanJingWanLiEntity> xuanJingWanLiEntities = new ArrayList<>();
|
|
|
+ xuanJingWanLiEntities.add(xuanJingWanLiEntity);
|
|
|
+ ExcelUtil.createExcelFile(XuanJingWanLiEntity.class, xuanJingWanLiEntities, resultMapList, new ExcelClass().contentExcel(Constant.SHEET_NAME_XJWL), fileName, Constant.SHEET_NAME_XJWL);
|
|
|
+ //坦克洪流 海空激战
|
|
|
+ } else if (Constant.QUEST_TYPE_TKHL.equals(type) || Constant.QUEST_TYPE_HKJZ.equals(type)) {
|
|
|
+ JSONObject userResponseRecords = jsonObject.getJSONObject("userResponseRecords");
|
|
|
+ String levelNum = userResponseRecords.getString("levelNum");
|
|
|
+ String everyReactionTimes = userResponseRecords.getString("everyReactionTimes");
|
|
|
+ String averageSlideTimes = userResponseRecords.getString("averageSlideTimes");
|
|
|
+ String scores = userResponseRecords.getString("scores");
|
|
|
+ String correctRate = userResponseRecords.getString("correctRate");
|
|
|
+ HaiKongJiZhanAndTanKeHongLiuEntity haiKongJiZhanAndTanKeHongLiuEntity = new HaiKongJiZhanAndTanKeHongLiuEntity(levelNum, everyReactionTimes, averageSlideTimes, scores, correctRate);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultJson.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultDBJson.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultMap.put("得分", String.valueOf(scores));
|
|
|
+ resultJson.put("得分", String.valueOf(scores));
|
|
|
+ resultDBJson.put("得分", String.valueOf(scores));
|
|
|
+ resultMap.put("正确率", String.valueOf(correctRate));
|
|
|
+ resultJson.put("正确率", String.valueOf(correctRate));
|
|
|
+ resultDBJson.put("正确率", String.valueOf(correctRate));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ ArrayList<HaiKongJiZhanAndTanKeHongLiuEntity> haiKongJiZhanAndTanKeHongLiuEntities = new ArrayList<>();
|
|
|
+ haiKongJiZhanAndTanKeHongLiuEntities.add(haiKongJiZhanAndTanKeHongLiuEntity);
|
|
|
+ if (Constant.QUEST_TYPE_TKHL.equals(type)) {
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAMEE_TKHL + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAMEE_TKHL;
|
|
|
+ ExcelUtil.createExcelFile(HaiKongJiZhanAndTanKeHongLiuEntity.class, haiKongJiZhanAndTanKeHongLiuEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_TKHL), fileName, Constant.SHEET_NAMEE_TKHL);
|
|
|
+ } else {
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_HKJZ + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_HKJZ;
|
|
|
+ ExcelUtil.createExcelFile(HaiKongJiZhanAndTanKeHongLiuEntity.class, haiKongJiZhanAndTanKeHongLiuEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_HKJZ), fileName, Constant.SHEET_NAME_HKJZ);
|
|
|
+ }
|
|
|
+ datas = userResponseRecords.toString();
|
|
|
+ //雄鹰展翅
|
|
|
+ } else if (Constant.QUEST_TYPE_XYZC.equals(type)) {
|
|
|
+ JSONObject userResponseRecords = jsonObject.getJSONObject("userResponseRecords");
|
|
|
+ String levelNum = userResponseRecords.getString("levelNum");
|
|
|
+ String everySlideTimes = userResponseRecords.getString("everySlideTimes");
|
|
|
+ String averageSlideTimes = userResponseRecords.getString("averageSlideTimes");
|
|
|
+ String scores = userResponseRecords.getString("scores");
|
|
|
+ XiongYingZhanChiEntity xiongYingZhanChiEntity = new XiongYingZhanChiEntity(levelNum, everySlideTimes, averageSlideTimes, scores);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultJson.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultDBJson.put("关卡数", String.valueOf(levelNum));
|
|
|
+ resultMap.put("得分", String.valueOf(scores));
|
|
|
+ resultJson.put("得分", String.valueOf(scores));
|
|
|
+ resultDBJson.put("得分", String.valueOf(scores));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ ArrayList<XiongYingZhanChiEntity> xiongYingZhanChiEntities = new ArrayList<>();
|
|
|
+ xiongYingZhanChiEntities.add(xiongYingZhanChiEntity);
|
|
|
+
|
|
|
+
|
|
|
+ datas = userResponseRecords.toString();
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_XYZC + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_XYZC;
|
|
|
+ ExcelUtil.createExcelFile(XiongYingZhanChiEntity.class, xiongYingZhanChiEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_XYZC), fileName, Constant.SHEET_NAME_XYZC);
|
|
|
+ //STTA STTB
|
|
|
+ } else if (Constant.QUEST_TYPE_STTA.equals(type) || Constant.QUEST_TYPE_STTB.equals(type)) {
|
|
|
+ String exerciseTime = jsonObject.getString("exerciseTime");
|
|
|
+ String realTime = jsonObject.getString("realTime");
|
|
|
+ String totalTime = jsonObject.getString("totalTime");
|
|
|
+
|
|
|
+ if ("NULL".equals(exerciseTime) || "NULL".equals(realTime) || "NULL".equals(totalTime)) {
|
|
|
+ exerciseTime = "测试不通过";
|
|
|
+ realTime = "测试不通过";
|
|
|
+ totalTime = "测试不通过";
|
|
|
+ }
|
|
|
+
|
|
|
+ STTEntity sttEntity = new STTEntity(exerciseTime, realTime, totalTime);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("练习测试时间", String.valueOf(exerciseTime));
|
|
|
+ resultJson.put("练习测试时间", String.valueOf(exerciseTime));
|
|
|
+ resultDBJson.put("练习测试时间", String.valueOf(exerciseTime));
|
|
|
+
|
|
|
+ resultDBJson.put("正式测试时间", String.valueOf(realTime));
|
|
|
+ resultJson.put("正式测试时间", String.valueOf(realTime));
|
|
|
+ resultMap.put("正式测试时间", String.valueOf(realTime));
|
|
|
+
|
|
|
+ resultJson.put("总反应时间", String.valueOf(totalTime));
|
|
|
+ resultMap.put("总反应时间", String.valueOf(totalTime));
|
|
|
+ resultDBJson.put("总反应时间", String.valueOf(totalTime));
|
|
|
+
|
|
|
+ ArrayList<STTEntity> sttEntities = new ArrayList<>();
|
|
|
+ sttEntities.add(sttEntity);
|
|
|
+ if (Constant.QUEST_TYPE_STTA.equals(type)) {
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_STTA + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_STTA;
|
|
|
+ ExcelUtil.createExcelFile(STTEntity.class, sttEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_STTA), fileName, Constant.SHEET_NAME_STTA);
|
|
|
+ } else {
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_STTB + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_STTB;
|
|
|
+ ExcelUtil.createExcelFile(STTEntity.class, sttEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_STTB), fileName, Constant.SHEET_NAME_STTB);
|
|
|
+ }
|
|
|
+ //数字广度测验
|
|
|
+ } else if (Constant.QUEST_TYPE_DST.equals(type)) {
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String aescScore = result.getString("AESCScore");
|
|
|
+ String descScore = result.getString("DESCScore");
|
|
|
+ JSONArray aesc = result.getJSONArray("AESC"); //正序
|
|
|
+ JSONArray desc = result.getJSONArray("DESC"); //倒叙
|
|
|
+
|
|
|
+ ArrayList<DSTEntity> dstEntities = new ArrayList<>();
|
|
|
+ List<DSTEntity> aescEntities = aesc.toJavaList(DSTEntity.class);
|
|
|
+ List<DSTEntity> descEntities = desc.toJavaList(DSTEntity.class);
|
|
|
+ dstEntities.addAll(aescEntities);
|
|
|
+ dstEntities.addAll(descEntities);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("顺序成绩", String.valueOf(aescScore));
|
|
|
+ resultJson.put("顺序成绩", String.valueOf(aescScore));
|
|
|
+ resultDBJson.put("顺序成绩", String.valueOf(aescScore));
|
|
|
+ resultMap.put("倒序成绩", String.valueOf(descScore));
|
|
|
+ resultJson.put("倒序成绩", String.valueOf(descScore));
|
|
|
+ resultDBJson.put("倒序成绩", String.valueOf(descScore));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(dstEntities);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_DST + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_DST;
|
|
|
+ ExcelUtil.createExcelFile(DSTEntity.class, dstEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_DST), fileName, Constant.SHEET_NAME_DST);
|
|
|
+
|
|
|
+ } else if (Constant.QUEST_TYPE_BSNTask.equals(type)) {
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String rightNum = result.getString("rightNum");
|
|
|
+ String tipNum = result.getString("tipNum");
|
|
|
+ String identifyNum = result.getString("identifyNum");
|
|
|
+ String errorNum = result.getString("errorNum");
|
|
|
+ JSONArray picList = result.getJSONArray("picList");
|
|
|
+
|
|
|
+ List<BSNTaskEntity> bsnTaskEntities = picList.toJavaList(BSNTaskEntity.class);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("正确个数", String.valueOf(rightNum));
|
|
|
+ resultJson.put("正确个数", String.valueOf(rightNum));
|
|
|
+ resultDBJson.put("正确个数", String.valueOf(rightNum));
|
|
|
+ resultMap.put("提示个数", String.valueOf(tipNum));
|
|
|
+ resultJson.put("提示个数", String.valueOf(tipNum));
|
|
|
+ resultDBJson.put("提示个数", String.valueOf(tipNum));
|
|
|
+ resultMap.put("辨认个数", String.valueOf(identifyNum));
|
|
|
+ resultJson.put("辨认个数", String.valueOf(identifyNum));
|
|
|
+ resultDBJson.put("辨认个数", String.valueOf(identifyNum));
|
|
|
+ resultMap.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultJson.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultDBJson.put("错误个数", String.valueOf(errorNum));
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(bsnTaskEntities);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_BSNTask + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_BSNTask;
|
|
|
+ ExcelUtil.createExcelFile(BSNTaskEntity.class, bsnTaskEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_BSNTask), fileName, Constant.SHEET_NAME_BSNTask);
|
|
|
+
|
|
|
+ } else if (Constant.QUEST_TYPE_AMWSTask.equals(type)) {
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String num = result.getString("num");
|
|
|
+ ObjectEntity num1 = new ObjectEntity("成绩", num);
|
|
|
+
|
|
|
+ ArrayList<ObjectEntity> objects = new ArrayList<>();
|
|
|
+ objects.add(num1);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new HashMap<>();
|
|
|
+ resultMap.put("成绩", String.valueOf(num));
|
|
|
+ resultJson.put("成绩", String.valueOf(num));
|
|
|
+ resultDBJson.put("成绩", String.valueOf(num));
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_AMWSTask + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_AMWSTask;
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, objects, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_AMWSTask), fileName, Constant.SHEET_NAME_AMWSTask);
|
|
|
+
|
|
|
+ } else if (Constant.QUEST_TYPE_ETB01.equals(type)) {
|
|
|
+ List<ETB01Entity> etb01Entities = jsonObject.getJSONArray("data").toJavaList(ETB01Entity.class);
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String totalResult = result.getString("totalResult");
|
|
|
+ JSONObject happy = result.getJSONObject("happy");
|
|
|
+ JSONObject fear = result.getJSONObject("fear");
|
|
|
+ JSONObject angry = result.getJSONObject("angry");
|
|
|
+ JSONObject disgust = result.getJSONObject("disgust");
|
|
|
+ JSONObject sad = result.getJSONObject("sad");
|
|
|
+ JSONObject surprise = result.getJSONObject("surprise");
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总正确率", totalResult);
|
|
|
+ resultJson.put("总正确率", totalResult);
|
|
|
+ resultDBJson.put("总正确率", totalResult);
|
|
|
+ resultMap.put("开心强度1正确率", String.valueOf(happy.get("level1")));
|
|
|
+ resultMap.put("开心强度2正确率", String.valueOf(happy.get("level2")));
|
|
|
+ resultMap.put("开心强度3正确率", String.valueOf(happy.get("level3")));
|
|
|
+ resultMap.put("开心强度4正确率", String.valueOf(happy.get("level4")));
|
|
|
+
|
|
|
+ resultMap.put("害怕强度1正确率", String.valueOf(fear.get("level1")));
|
|
|
+ resultMap.put("害怕强度2正确率", String.valueOf(fear.get("level2")));
|
|
|
+ resultMap.put("害怕强度3正确率", String.valueOf(fear.get("level3")));
|
|
|
+ resultMap.put("害怕强度4正确率", String.valueOf(fear.get("level4")));
|
|
|
+
|
|
|
+ resultMap.put("生气强度1正确率", String.valueOf(angry.get("level1")));
|
|
|
+ resultMap.put("生气强度2正确率", String.valueOf(angry.get("level2")));
|
|
|
+ resultMap.put("生气强度3正确率", String.valueOf(angry.get("level3")));
|
|
|
+ resultMap.put("生气强度4正确率", String.valueOf(angry.get("level4")));
|
|
|
+
|
|
|
+ resultMap.put("厌恶强度1正确率", String.valueOf(disgust.get("level1")));
|
|
|
+ resultMap.put("厌恶强度2正确率", String.valueOf(disgust.get("level2")));
|
|
|
+ resultMap.put("厌恶强度3正确率", String.valueOf(disgust.get("level3")));
|
|
|
+ resultMap.put("厌恶强度4正确率", String.valueOf(disgust.get("level4")));
|
|
|
+
|
|
|
+ resultMap.put("悲伤强度1正确率", String.valueOf(sad.get("level1")));
|
|
|
+ resultMap.put("悲伤强度2正确率", String.valueOf(sad.get("level2")));
|
|
|
+ resultMap.put("悲伤强度3正确率", String.valueOf(sad.get("level3")));
|
|
|
+ resultMap.put("悲伤强度4正确率", String.valueOf(sad.get("level4")));
|
|
|
+
|
|
|
+ resultMap.put("惊讶强度1正确率", String.valueOf(surprise.get("level1")));
|
|
|
+ resultMap.put("惊讶强度2正确率", String.valueOf(surprise.get("level2")));
|
|
|
+ resultMap.put("惊讶强度3正确率", String.valueOf(surprise.get("level3")));
|
|
|
+ resultMap.put("惊讶强度4正确率", String.valueOf(surprise.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("开心强度1正确率", String.valueOf(happy.get("level1")));
|
|
|
+ resultDBJson.put("开心强度2正确率", String.valueOf(happy.get("level2")));
|
|
|
+ resultDBJson.put("开心强度3正确率", String.valueOf(happy.get("level3")));
|
|
|
+ resultDBJson.put("开心强度4正确率", String.valueOf(happy.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("害怕强度1正确率", String.valueOf(fear.get("level1")));
|
|
|
+ resultDBJson.put("害怕强度2正确率", String.valueOf(fear.get("level2")));
|
|
|
+ resultDBJson.put("害怕强度3正确率", String.valueOf(fear.get("level3")));
|
|
|
+ resultDBJson.put("害怕强度4正确率", String.valueOf(fear.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("生气强度1正确率", String.valueOf(angry.get("level1")));
|
|
|
+ resultDBJson.put("生气强度2正确率", String.valueOf(angry.get("level2")));
|
|
|
+ resultDBJson.put("生气强度3正确率", String.valueOf(angry.get("level3")));
|
|
|
+ resultDBJson.put("生气强度4正确率", String.valueOf(angry.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("厌恶强度1正确率", String.valueOf(disgust.get("level1")));
|
|
|
+ resultDBJson.put("厌恶强度2正确率", String.valueOf(disgust.get("level2")));
|
|
|
+ resultDBJson.put("厌恶强度3正确率", String.valueOf(disgust.get("level3")));
|
|
|
+ resultDBJson.put("厌恶强度4正确率", String.valueOf(disgust.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("悲伤强度1正确率", String.valueOf(sad.get("level1")));
|
|
|
+ resultDBJson.put("悲伤强度2正确率", String.valueOf(sad.get("level2")));
|
|
|
+ resultDBJson.put("悲伤强度3正确率", String.valueOf(sad.get("level3")));
|
|
|
+ resultDBJson.put("悲伤强度4正确率", String.valueOf(sad.get("level4")));
|
|
|
+
|
|
|
+ resultDBJson.put("惊讶强度1正确率", String.valueOf(surprise.get("level1")));
|
|
|
+ resultDBJson.put("惊讶强度2正确率", String.valueOf(surprise.get("level2")));
|
|
|
+ resultDBJson.put("惊讶强度3正确率", String.valueOf(surprise.get("level3")));
|
|
|
+ resultDBJson.put("惊讶强度4正确率", String.valueOf(surprise.get("level4")));
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(etb01Entities);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ETB01 + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ETB01;
|
|
|
+ ExcelUtil.createExcelFile(ETB01Entity.class, etb01Entities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ETB01), fileName, Constant.SHEET_NAME_ETB01);
|
|
|
+ } else if (Constant.QUEST_TYPE_ECAT.equals(type)) {
|
|
|
+ List<ECATEntity> ecatEntities = jsonObject.getJSONArray("data").toJavaList(ECATEntity.class);
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String posNum = result.getString("posNum");
|
|
|
+ String negNum = result.getString("negNum");
|
|
|
+ String posAverageTime = result.getString("posAverageTime");
|
|
|
+ String negAverageTime = result.getString("negAverageTime");
|
|
|
+
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("积极词语个数", posNum);
|
|
|
+ resultJson.put("积极词语个数", posNum);
|
|
|
+ resultDBJson.put("积极词语个数", posNum);
|
|
|
+
|
|
|
+ resultMap.put("消极词语个数", negNum);
|
|
|
+ resultJson.put("消极词语个数", negNum);
|
|
|
+ resultDBJson.put("消极词语个数", negNum);
|
|
|
+
|
|
|
+ resultMap.put("积极词语平均反应时", posAverageTime);
|
|
|
+ resultJson.put("积极词语平均反应时", posAverageTime);
|
|
|
+ resultDBJson.put("积极词语平均反应时", posAverageTime);
|
|
|
+
|
|
|
+ resultMap.put("消极词语平均反应时", negAverageTime);
|
|
|
+ resultJson.put("消极词语平均反应时", negAverageTime);
|
|
|
+ resultDBJson.put("消极词语平均反应时", negAverageTime);
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(ecatEntities);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_ECAT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_ECAT;
|
|
|
+ ExcelUtil.createExcelFile(ECATEntity.class, ecatEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_ECAT), fileName, Constant.SHEET_NAME_ECAT);
|
|
|
+ } else if (Constant.QUEST_TYPE_EREC.equals(type)) {
|
|
|
+ JSONObject data = jsonObject.getJSONObject("data");
|
|
|
+ String totalWords = data.getString("totalWords");
|
|
|
+ String positiveWordCount = data.getString("positiveWordCount");
|
|
|
+ String negtiveWordCount = data.getString("negtiveWordCount");
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String posCorrectRate = result.getString("posCorrectRate");
|
|
|
+ String negCorrectRate = result.getString("negCorrectRate");
|
|
|
+ String totalCorrectRate = result.getString("totalCorrectRate");
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总体正确率", totalCorrectRate);
|
|
|
+ resultJson.put("总体正确率", totalCorrectRate);
|
|
|
+ resultDBJson.put("总体正确率", totalCorrectRate);
|
|
|
+ resultMap.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultJson.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultDBJson.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultMap.put("消极词语的正确率", negCorrectRate);
|
|
|
+ resultJson.put("消极词语的正确率", negCorrectRate);
|
|
|
+ resultDBJson.put("消极词语的正确率", negCorrectRate);
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ ObjectEntity totalObjectEntity = new ObjectEntity("总词数", totalWords);
|
|
|
+ ObjectEntity posObjectEntity = new ObjectEntity("积极词语个数", positiveWordCount);
|
|
|
+ ObjectEntity negObjectEntity = new ObjectEntity("消极词语个数", negtiveWordCount);
|
|
|
+ ArrayList<ObjectEntity> objects = new ArrayList<>();
|
|
|
+ objects.add(totalObjectEntity);
|
|
|
+ objects.add(posObjectEntity);
|
|
|
+ objects.add(negObjectEntity);
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_EREC + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_EREC;
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, objects, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_EREC), fileName, Constant.SHEET_NAME_EREC);
|
|
|
+ } else if (Constant.QUEST_TYPE_EMEM.equals(type)) {
|
|
|
+ List<EMEMEntity> ememEntities = jsonObject.getJSONArray("data").toJavaList(EMEMEntity.class);
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ String posCorrectRate = result.getString("posCorrectRate");
|
|
|
+ String negCorrectRate = result.getString("negCorrectRate");
|
|
|
+ String totalCorrectRate = result.getString("totalCorrectRate");
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总体正确率", totalCorrectRate);
|
|
|
+ resultJson.put("总体正确率", totalCorrectRate);
|
|
|
+ resultDBJson.put("总体正确率", totalCorrectRate);
|
|
|
+ resultMap.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultJson.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultDBJson.put("积极词语的正确率", posCorrectRate);
|
|
|
+ resultMap.put("消极词语的正确率", negCorrectRate);
|
|
|
+ resultJson.put("消极词语的正确率", negCorrectRate);
|
|
|
+ resultDBJson.put("消极词语的正确率", negCorrectRate);
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_EMEM + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_EMEM;
|
|
|
+ ExcelUtil.createExcelFile(EMEMEntity.class, ememEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_EMEM), fileName, Constant.SHEET_NAME_EMEM);
|
|
|
+ } else if (Constant.QUEST_TYPE_EALL.equals(type)) {
|
|
|
+ JSONObject ecat = jsonObject.getJSONObject("ECAT");
|
|
|
+ JSONObject erec = jsonObject.getJSONObject("EREC");
|
|
|
+ JSONObject emem = jsonObject.getJSONObject("EMEM");
|
|
|
+ //ECAT计算
|
|
|
+ List<ECATEntity> ecatEntities = ecat.getJSONArray("data").toJavaList(ECATEntity.class);
|
|
|
+ JSONObject ecatResult = ecat.getJSONObject("result");
|
|
|
+ String posNum = ecatResult.getString("posNum");
|
|
|
+ String negNum = ecatResult.getString("negNum");
|
|
|
+ String posAverageTime = ecatResult.getString("posAverageTime");
|
|
|
+ String negAverageTime = ecatResult.getString("negAverageTime");
|
|
|
+
|
|
|
+ JSONObject resultMapJson = new JSONObject(true);
|
|
|
+ HashMap<String, String> ecatReturnResult = new HashMap<>();
|
|
|
+ Map<String, String> ecatResultMap = new LinkedHashMap<>();
|
|
|
+ ecatResultMap.put("ECAT积极词语个数", posNum);
|
|
|
+ resultDBJson.put("ECAT积极词语个数", posNum);
|
|
|
+ ecatReturnResult.put("ECAT积极词语个数", posNum);
|
|
|
+
|
|
|
+ ecatResultMap.put("ECAT消极词语个数", negNum);
|
|
|
+ resultDBJson.put("ECAT消极词语个数", negNum);
|
|
|
+ ecatReturnResult.put("ECAT消极词语个数", negNum);
|
|
|
+
|
|
|
+ ecatResultMap.put("ECAT积极词语平均反应时", posAverageTime);
|
|
|
+ resultDBJson.put("ECAT积极词语平均反应时", posAverageTime);
|
|
|
+ ecatReturnResult.put("ECAT积极词语平均反应时", posAverageTime);
|
|
|
+
|
|
|
+ ecatResultMap.put("ECAT消极词语平均反应时", negAverageTime);
|
|
|
+ resultDBJson.put("ECAT消极词语平均反应时", negAverageTime);
|
|
|
+ ecatReturnResult.put("ECAT消极词语平均反应时", negAverageTime);
|
|
|
+
|
|
|
+ resultJson.put("ECAT", ecatReturnResult);
|
|
|
+ resultMapJson.put("ECAT", ecatResultMap);
|
|
|
+ //EREC
|
|
|
+ JSONObject data = erec.getJSONObject("data");
|
|
|
+ String totalWords = data.getString("totalWords");
|
|
|
+ String positiveWordCount = data.getString("positiveWordCount");
|
|
|
+ String negtiveWordCount = data.getString("negtiveWordCount");
|
|
|
+ JSONObject result = erec.getJSONObject("result");
|
|
|
+ String posCorrectRate = result.getString("posCorrectRate");
|
|
|
+ String negCorrectRate = result.getString("negCorrectRate");
|
|
|
+ String totalCorrectRate = result.getString("totalCorrectRate");
|
|
|
+
|
|
|
+ Map<String, String> erecResultMap = new LinkedHashMap<>();
|
|
|
+ HashMap<String, String> erecReturnResult = new HashMap<>();
|
|
|
+ erecReturnResult.put("EREC总体正确率", totalCorrectRate);
|
|
|
+ resultDBJson.put("EREC总体正确率", totalCorrectRate);
|
|
|
+ erecResultMap.put("EREC积极词语的正确率", posCorrectRate);
|
|
|
+ erecReturnResult.put("EREC积极词语的正确率", posCorrectRate);
|
|
|
+ resultDBJson.put("EREC积极词语的正确率", posCorrectRate);
|
|
|
+ erecResultMap.put("EREC消极词语的正确率", negCorrectRate);
|
|
|
+ erecReturnResult.put("EREC消极词语的正确率", negCorrectRate);
|
|
|
+ resultDBJson.put("EREC消极词语的正确率", negCorrectRate);
|
|
|
+
|
|
|
+ resultJson.put("EREC", erecReturnResult);
|
|
|
+ resultMapJson.put("EREC", erecResultMap);
|
|
|
+
|
|
|
+ ObjectEntity totalObjectEntity = new ObjectEntity("总词数", totalWords);
|
|
|
+ ObjectEntity posObjectEntity = new ObjectEntity("积极词语个数", positiveWordCount);
|
|
|
+ ObjectEntity negObjectEntity = new ObjectEntity("消极词语个数", negtiveWordCount);
|
|
|
+ ArrayList<ObjectEntity> erecObjects = new ArrayList<>();
|
|
|
+ erecObjects.add(totalObjectEntity);
|
|
|
+ erecObjects.add(posObjectEntity);
|
|
|
+ erecObjects.add(negObjectEntity);
|
|
|
+ //EMEM
|
|
|
+ List<EMEMEntity> ememEntities = emem.getJSONArray("data").toJavaList(EMEMEntity.class);
|
|
|
+ JSONObject ememResult = emem.getJSONObject("result");
|
|
|
+ String ememPosCorrectRate = ememResult.getString("posCorrectRate");
|
|
|
+ String ememNegCorrectRate = ememResult.getString("negCorrectRate");
|
|
|
+ String ememTotalCorrectRate = ememResult.getString("totalCorrectRate");
|
|
|
+
|
|
|
+ Map<String, String> ememResultMap = new LinkedHashMap<>();
|
|
|
+ HashMap<String, String> ememReturnResult = new HashMap<>();
|
|
|
+ ememResultMap.put("EMEM总体正确率", ememTotalCorrectRate);
|
|
|
+ ememReturnResult.put("EMEM总体正确率", ememTotalCorrectRate);
|
|
|
+ resultDBJson.put("EMEM总体正确率", ememTotalCorrectRate);
|
|
|
+ ememResultMap.put("EMEM积极词语的正确率", ememPosCorrectRate);
|
|
|
+ ememReturnResult.put("EMEM积极词语的正确率", ememPosCorrectRate);
|
|
|
+ resultDBJson.put("EMEM积极词语的正确率", ememPosCorrectRate);
|
|
|
+ ememResultMap.put("EMEM消极词语的正确率", ememNegCorrectRate);
|
|
|
+ ememReturnResult.put("EMEM消极词语的正确率", ememNegCorrectRate);
|
|
|
+ resultDBJson.put("EMEM消极词语的正确率", ememNegCorrectRate);
|
|
|
+
|
|
|
+ resultJson.put("EMEM", ememReturnResult);
|
|
|
+ resultMapJson.put("EMEM", ememResultMap);
|
|
|
+
|
|
|
+ ArrayList<Class> classes = new ArrayList<>();
|
|
|
+ //实体类
|
|
|
+ classes.add(ECATEntity.class);
|
|
|
+ classes.add(ObjectEntity.class);
|
|
|
+ classes.add(EMEMEntity.class);
|
|
|
+ //答题记录
|
|
|
+ Map<String, List> objs = new HashMap<>();
|
|
|
+ objs.put("ECAT", ecatEntities.stream().sorted(Comparator.comparing(ECATEntity::getIndex, Comparator.comparingInt(Integer::parseInt))).collect(Collectors.toList()));
|
|
|
+ objs.put("EREC", erecObjects);
|
|
|
+ objs.put("EMEM", ememEntities.stream().sorted(Comparator.comparing(EMEMEntity::getIndex, Comparator.comparingInt(Integer::parseInt))).collect(Collectors.toList()));
|
|
|
+ //表头
|
|
|
+ List<Map<Integer, List<ExcelBean>>> tableHeader = new ArrayList<>();
|
|
|
+ tableHeader.add(new ExcelClass().contentExcel(Constant.QUEST_TYPE_ECAT));
|
|
|
+ tableHeader.add(new ExcelClass().contentExcel(Constant.QUEST_TYPE_EREC));
|
|
|
+ tableHeader.add(new ExcelClass().contentExcel(Constant.QUEST_TYPE_EMEM));
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_EALL + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_EALL;
|
|
|
+ ExcelUtil.createEALLExcelFile(classes, objs, resultMapJson, tableHeader, fileName, Constant.SHEET_NAME_EALL);
|
|
|
+ } else if (Constant.QUEST_TYPE_FDOT.equals(type)) {
|
|
|
+ List<FDOTEntity> block = jsonObject.getJSONArray("data").toJavaList(FDOTEntity.class);
|
|
|
+ JSONObject result = jsonObject.getJSONObject("result");
|
|
|
+ JSONObject block1Result = result.getJSONObject("block1");
|
|
|
+ JSONObject block2Result = result.getJSONObject("block2");
|
|
|
+ String block1TotalCorrectRate = block1Result.getString("totalCorrectRate");
|
|
|
+ String block1PosCorrectRate = block1Result.getString("posCorrectRate");
|
|
|
+ String block1PosAverageTime = block1Result.getString("posAverageTime");
|
|
|
+ String block1NegCorrectRate = block1Result.getString("negCorrectRate");
|
|
|
+ String block1NegAverageTime = block1Result.getString("negAverageTime");
|
|
|
+ String block1NeuCorrectRate = block1Result.getString("neuCorrectRate");
|
|
|
+ String block1NeuAverageTime = block1Result.getString("neuAverageTime");
|
|
|
+
|
|
|
+ String block2TotalCorrectRate = block2Result.getString("totalCorrectRate");
|
|
|
+ String block2PosCorrectRate = block2Result.getString("posCorrectRate");
|
|
|
+ String block2PosAverageTime = block2Result.getString("posAverageTime");
|
|
|
+ String block2NegCorrectRate = block2Result.getString("negCorrectRate");
|
|
|
+ String block2NegAverageTime = block2Result.getString("negAverageTime");
|
|
|
+ String block2NeuCorrectRate = block2Result.getString("neuCorrectRate");
|
|
|
+ String block2NeuAverageTime = block2Result.getString("neuAverageTime");
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("block1总体正确率", block1TotalCorrectRate);
|
|
|
+ resultJson.put("block1总体正确率", block1TotalCorrectRate);
|
|
|
+ resultDBJson.put("block1总体正确率", block1TotalCorrectRate);
|
|
|
+
|
|
|
+ resultMap.put("block2总体正确率", block2TotalCorrectRate);
|
|
|
+ resultJson.put("block2总体正确率", block2TotalCorrectRate);
|
|
|
+ resultDBJson.put("block2总体正确率", block2TotalCorrectRate);
|
|
|
+
|
|
|
+ resultMap.put("block1积极正确率", block1PosCorrectRate);
|
|
|
+ resultMap.put("block1积极反应时", block1PosAverageTime);
|
|
|
+ resultMap.put("block1消极正确率", block1NegCorrectRate);
|
|
|
+ resultMap.put("block1消极反应时", block1NegAverageTime);
|
|
|
+ resultMap.put("block1中性正确率", block1NeuCorrectRate);
|
|
|
+ resultMap.put("block1中性反应时", block1NeuAverageTime);
|
|
|
+
|
|
|
+ resultMap.put("block2积极正确率", block2PosCorrectRate);
|
|
|
+ resultMap.put("block2积极反应时", block2PosAverageTime);
|
|
|
+ resultMap.put("block2消极正确率", block2NegCorrectRate);
|
|
|
+ resultMap.put("block2消极反应时", block2NegAverageTime);
|
|
|
+ resultMap.put("block2中性正确率", block2NeuCorrectRate);
|
|
|
+ resultMap.put("block2中性反应时", block2NeuAverageTime);
|
|
|
+
|
|
|
+ resultDBJson.put("block1积极正确率", block1PosCorrectRate);
|
|
|
+ resultDBJson.put("block1积极反应时", block1PosAverageTime);
|
|
|
+ resultDBJson.put("block1消极正确率", block1NegCorrectRate);
|
|
|
+ resultDBJson.put("block1消极反应时", block1NegAverageTime);
|
|
|
+ resultDBJson.put("block1中性正确率", block1NeuCorrectRate);
|
|
|
+ resultDBJson.put("block1中性反应时", block1NeuAverageTime);
|
|
|
+
|
|
|
+ resultDBJson.put("block2积极正确率", block2PosCorrectRate);
|
|
|
+ resultDBJson.put("block2积极反应时", block2PosAverageTime);
|
|
|
+ resultDBJson.put("block2消极正确率", block2NegCorrectRate);
|
|
|
+ resultDBJson.put("block2消极反应时", block2NegAverageTime);
|
|
|
+ resultDBJson.put("block2中性正确率", block2NeuCorrectRate);
|
|
|
+ resultDBJson.put("block2中性反应时", block2NeuAverageTime);
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_FDOT + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_FDOT;
|
|
|
+ ExcelUtil.createExcelFile(FDOTEntity.class, block, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_FDOT), fileName, Constant.SHEET_NAME_FDOT);
|
|
|
+ //zb两个认知任务
|
|
|
+ } else if (Constant.QUEST_TYPE_ZBMHA.equals(type)) {
|
|
|
+ //向前台推送消息,提示任务已结束
|
|
|
+ String url = "ws://127.0.0.1:54378/ws";
|
|
|
+ MyClient myClient = new MyClient(url);
|
|
|
+ log.info("连接消息通道" + LocalDateTime.now());
|
|
|
+ if (!myClient.connectBlocking()) {
|
|
|
+ log.info("连接消息通道失败" + LocalDateTime.now());
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject dataJson = new JSONObject(true);
|
|
|
+ dataJson.put("flag", "end");
|
|
|
+ dataJson.put("testDate", testTime);
|
|
|
+ dataJson.put("date", LocalDateTime.now().toString());
|
|
|
+ myClient.send(dataJson.toString());
|
|
|
+ log.info("发送结束指令" + LocalDateTime.now());
|
|
|
+ Thread.sleep(500);
|
|
|
+ log.info("测试结束-关闭客户端" + LocalDateTime.now());
|
|
|
+ myClient.close();
|
|
|
+ JSONObject SHAPE = jsonObject.getJSONObject("SHAPE");
|
|
|
+
|
|
|
+ JSONArray shape2EntitieList = SHAPE.getJSONArray("userResponseRecords");
|
|
|
+ List<SHAPE2Entity> shape2Entities = shape2EntitieList.toJavaList(SHAPE2Entity.class);
|
|
|
+ //精神障碍风险4、5等级个数
|
|
|
+ int x = 0;
|
|
|
+ for (SHAPE2Entity shape2Entity : shape2Entities) {
|
|
|
+ if (shape2Entity.getDiff().equals("360") || shape2Entity.getDiff().equals("180")) {
|
|
|
+ if (shape2Entity.getRightOrWrong().equals("Right")) {
|
|
|
+ x++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DecimalFormat df = new DecimalFormat("######0.00");
|
|
|
+ String SZscore = String.valueOf(Double.parseDouble(df.format(x * 100 / 40)));
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+
|
|
|
+ JSONObject ETB01 = jsonObject.getJSONObject("ETB01");
|
|
|
+
|
|
|
+ List<ETB01Entity> etb01Entities = ETB01.getJSONArray("data").toJavaList(ETB01Entity.class);
|
|
|
+ JSONObject result = ETB01.getJSONObject("result");
|
|
|
+ JSONObject happy = result.getJSONObject("happy");
|
|
|
+ double happy1 = Double.parseDouble(happy.getString("level1").replace("%", ""));
|
|
|
+ double happy2 = Double.parseDouble(happy.getString("level2").replace("%", ""));
|
|
|
+ double happy3 = Double.parseDouble(happy.getString("level3").replace("%", ""));
|
|
|
+ double happy4 = Double.parseDouble(happy.getString("level4").replace("%", ""));
|
|
|
+ double happySum = happy1 + happy2 + happy3 + happy4;
|
|
|
+ String D1score = String.valueOf(Double.parseDouble(df.format(happySum / 4)));
|
|
|
+ resultMap.put("抑郁情绪指标1", D1score);
|
|
|
+ resultJson.put("抑郁情绪指标1", D1score);
|
|
|
+ resultDBJson.put("抑郁情绪指标1", D1score);
|
|
|
+
|
|
|
+ JSONObject surprise = result.getJSONObject("surprise");
|
|
|
+ double surprise1 = Double.parseDouble(surprise.getString("level1").replace("%", ""));
|
|
|
+ double surprise2 = Double.parseDouble(surprise.getString("level2").replace("%", ""));
|
|
|
+ double surprise3 = Double.parseDouble(surprise.getString("level3").replace("%", ""));
|
|
|
+ double surprise4 = Double.parseDouble(surprise.getString("level4").replace("%", ""));
|
|
|
+ double surpriseSum = surprise1 + surprise2 + surprise3 + surprise4;
|
|
|
+ String D2score = String.valueOf(Double.parseDouble(df.format(surpriseSum / 4)));
|
|
|
+ resultMap.put("抑郁情绪指标2", D2score);
|
|
|
+ resultJson.put("抑郁情绪指标2", D2score);
|
|
|
+ resultDBJson.put("抑郁情绪指标2", D2score);
|
|
|
+
|
|
|
+ resultMap.put("精神障碍风险", SZscore);
|
|
|
+ resultJson.put("精神障碍风险", SZscore);
|
|
|
+ resultDBJson.put("精神障碍风险", SZscore);
|
|
|
+ if (Double.parseDouble(df.format(x * 100 / 40)) >= 65) {
|
|
|
+ resultMap.put("精神障碍风险结论", "此项得分正常");
|
|
|
+ resultJson.put("精神障碍风险结论", "此项得分正常");
|
|
|
+ resultDBJson.put("精神障碍风险结论", "此项得分正常");
|
|
|
+ } else {
|
|
|
+ resultMap.put("精神障碍风险结论", "此项得分偏低");
|
|
|
+ resultJson.put("精神障碍风险结论", "此项得分偏低");
|
|
|
+ resultDBJson.put("精神障碍风险结论", "此项得分偏低");
|
|
|
+ }
|
|
|
+
|
|
|
+ double sum = Double.parseDouble(df.format((happySum / 4 + surpriseSum / 4) / 2));
|
|
|
+ resultMap.put("抑郁情绪", String.valueOf(sum));
|
|
|
+ resultJson.put("抑郁情绪", String.valueOf(sum));
|
|
|
+ resultDBJson.put("抑郁情绪", String.valueOf(sum));
|
|
|
+ if (sum >= 65) {
|
|
|
+ resultMap.put("抑郁情绪结论", "此项得分正常");
|
|
|
+ resultJson.put("抑郁情绪结论", "此项得分正常");
|
|
|
+ resultDBJson.put("抑郁情绪结论", "此项得分正常");
|
|
|
+
|
|
|
+ } else {
|
|
|
+ resultMap.put("抑郁情绪结论", "此项得分偏低");
|
|
|
+ resultJson.put("抑郁情绪结论", "此项得分偏低");
|
|
|
+ resultDBJson.put("抑郁情绪结论", "此项得分偏低");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Double.parseDouble(df.format(x * 100 / 40)) >= 65 && Double.parseDouble(df.format(happySum / 4)) >= 65 && Double.parseDouble(df.format(surpriseSum / 4)) >= 65) {
|
|
|
+ resultMap.put("结论", "您的心理健康状态良好,无明显抑郁情绪,精神障碍风险较低,请继续保持。");
|
|
|
+ resultJson.put("结论", "您的心理健康状态良好,无明显抑郁情绪,精神障碍风险较低,请继续保持。");
|
|
|
+ resultDBJson.put("结论", "您的心理健康状态良好,无明显抑郁情绪,精神障碍风险较低,请继续保持。");
|
|
|
+ resultMap.put("是否合格", "合格");
|
|
|
+ resultJson.put("是否合格", "合格");
|
|
|
+ resultDBJson.put("是否合格", "合格");
|
|
|
+ } else {
|
|
|
+ resultMap.put("结论", "测试表明,您有明显抑郁情绪或具有较高精神障碍风险,请您咨询专业人员,并到指定医院复查。");
|
|
|
+ resultJson.put("结论", "测试表明,您有明显抑郁情绪或具有较高精神障碍风险,请您咨询专业人员,并到指定医院复查。");
|
|
|
+ resultDBJson.put("结论", "测试表明,您有明显抑郁情绪或具有较高精神障碍风险,请您咨询专业人员,并到指定医院复查。");
|
|
|
+ resultMap.put("是否合格", "不合格");
|
|
|
+ resultJson.put("是否合格", "不合格");
|
|
|
+ resultDBJson.put("是否合格", "不合格");
|
|
|
+ }
|
|
|
+
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(shape2Entities) + JSONArray.toJSONString(etb01Entities);
|
|
|
+ name = Constant.SHEET_NAME_ZBMHA;
|
|
|
+ ServerController.TASK_STATUS.put(phone, "2");
|
|
|
+ //视觉模拟渴求
|
|
|
+ }else if (Constant.QUEST_TYPE_VAS.equals(type)) {
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ System.out.println(jsonObject);
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ List<ObjectEntity> dataList = jsonArray.toJavaList(ObjectEntity.class);
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", dataList.get(0).getValue());
|
|
|
+ resultDBJson.put("总分", dataList.get(0).getValue());
|
|
|
+ resultJson.put("总分", dataList.get(0).getValue());
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_VAS + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_VAS;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, dataList, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_MMSE), fileName, Constant.SHEET_NAME_VAS);
|
|
|
+ //Stroop试验
|
|
|
+ }else if (Constant.QUEST_TYPE_STROOP.equals(type)) {
|
|
|
+ resultMapList = new ArrayList<>();
|
|
|
+ System.out.println(jsonObject);
|
|
|
+ JSONArray jsonArray = jsonObject.getJSONArray("data");
|
|
|
+ List<StroopEntity> stroopEntities = jsonArray.toJavaList(StroopEntity.class);
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("StroopD完成时间(秒)", stroopEntities.get(0).getFinishTime());
|
|
|
+ resultDBJson.put("StroopD完成时间(秒)", stroopEntities.get(0).getFinishTime());
|
|
|
+ resultJson.put("StroopD完成时间(秒)", stroopEntities.get(0).getFinishTime());
|
|
|
+ resultMap.put("StroopD错误数目", stroopEntities.get(0).getErrorNumber());
|
|
|
+ resultDBJson.put("StroopD错误数目", stroopEntities.get(0).getErrorNumber());
|
|
|
+ resultJson.put("StroopD错误数目", stroopEntities.get(0).getErrorNumber());
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ Map<String, String> resultMap2 = new LinkedHashMap<>();
|
|
|
+ resultMap2.put("StroopW完成时间(秒)", stroopEntities.get(1).getFinishTime());
|
|
|
+ resultDBJson.put("StroopW完成时间(秒)", stroopEntities.get(1).getFinishTime());
|
|
|
+ resultJson.put("StroopW完成时间(秒)", stroopEntities.get(1).getFinishTime());
|
|
|
+ resultMap2.put("StroopW错误数目", stroopEntities.get(1).getErrorNumber());
|
|
|
+ resultDBJson.put("StroopW错误数目", stroopEntities.get(1).getErrorNumber());
|
|
|
+ resultJson.put("StroopW错误数目", stroopEntities.get(1).getErrorNumber());
|
|
|
+ resultMapList.add(resultMap2);
|
|
|
+ Map<String, String> resultMap3 = new LinkedHashMap<>();
|
|
|
+ resultMap3.put("StroopC完成时间(秒)", stroopEntities.get(2).getFinishTime());
|
|
|
+ resultDBJson.put("StroopC完成时间(秒)", stroopEntities.get(2).getFinishTime());
|
|
|
+ resultJson.put("StroopC完成时间(秒)", stroopEntities.get(2).getFinishTime());
|
|
|
+ resultMap3.put("StroopC错误数目", stroopEntities.get(2).getErrorNumber());
|
|
|
+ resultDBJson.put("StroopC错误数目", stroopEntities.get(2).getErrorNumber());
|
|
|
+ resultJson.put("StroopC错误数目", stroopEntities.get(2).getErrorNumber());
|
|
|
+ resultMapList.add(resultMap3);
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_STROOP + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_STROOP;
|
|
|
+ datas = jsonArray.toString();
|
|
|
+ ExcelUtil.createExcelFile(StroopEntity.class, stroopEntities, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_STROOP), fileName, Constant.SHEET_NAME_STROOP);
|
|
|
+ //数字符号转换测验
|
|
|
+ } else if (Constant.QUEST_TYPE_DSST.equals(type)) {
|
|
|
+ String score = jsonObject.getString("score");
|
|
|
+ b64Img = jsonObject.getString("Img");
|
|
|
+ fileName = fileName + "-" + Constant.SHEET_NAME_DSST + ".xlsx";
|
|
|
+ name = Constant.SHEET_NAME_DSST;
|
|
|
+ Map<String, String> resultMap = new LinkedHashMap<>();
|
|
|
+ resultMap.put("总分", score);
|
|
|
+ resultDBJson.put("总分", score);
|
|
|
+ resultJson.put("score", score);
|
|
|
+ resultMapList.add(resultMap);
|
|
|
+ ExcelUtil.createExcelFile(ObjectEntity.class, null, resultMapList, new ExcelClass().contentExcel(Constant.QUEST_TYPE_DSST), fileName, Constant.SHEET_NAME_DSST);
|
|
|
+ String imgFilePath;
|
|
|
+ File file = new File("./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_DSST);
|
|
|
+ if (!file.exists()) {
|
|
|
+ //file.createNewFile();
|
|
|
+ file.mkdirs();
|
|
|
+ }
|
|
|
+ imgFilePath = "./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + Constant.SHEET_NAME_DSST + "/" + userName + Constant.SPLIT_CHAR + userBirthday + Constant.SPLIT_CHAR + userSex + Constant.SPLIT_CHAR + testTime + "-" + Constant.SHEET_NAME_DSST + ".jpg";
|
|
|
+ Utils.GenerateImage(b64Img.substring(b64Img.indexOf(",")+1), imgFilePath);
|
|
|
+ b64Img = imgFilePath;
|
|
|
+ } else {
|
|
|
+ return fail("", "该任务不可用,请联系管理员");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (resultDBJson.get("测试结果指导").equals("")) {
|
|
|
+ resultDBJson.remove("测试结果指导");
|
|
|
+ }
|
|
|
+ if (resultJson.containsKey("测试结果指导")) {
|
|
|
+ if ( resultJson.get("测试结果指导").equals("")){
|
|
|
+ resultJson.remove("测试结果指导");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 获取JSON第一层所有的key
|
|
|
+ Set<String> keys = resultDBJson.keySet();
|
|
|
+
|
|
|
+ //计算结果
|
|
|
+ JSONArray dbJsonList = new JSONArray();
|
|
|
+ JSONObject dbJson = new JSONObject(true);
|
|
|
+ JSONArray tableContext = new JSONArray();
|
|
|
+ //列名
|
|
|
+ List colNames = new ArrayList();
|
|
|
+ if (Constant.QUEST_TYPE_MEMORY_YATAI.equals(type)) {
|
|
|
+ colNames.add("类型");
|
|
|
+ colNames.add("0-BACK");
|
|
|
+ colNames.add("1-BACK");
|
|
|
+ colNames.add("2-BACK");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+ //列值
|
|
|
+ List colValue1 = new ArrayList();
|
|
|
+ colValue1.add("低");
|
|
|
+ colValue1.add("中");
|
|
|
+ colValue1.add("高");
|
|
|
+ JSONObject row1 = new JSONObject(true);
|
|
|
+ row1.put("name", "难度等级");
|
|
|
+ row1.put("value", colValue1);
|
|
|
+ tableContext.add(row1);
|
|
|
+
|
|
|
+ List colValue2 = new ArrayList();
|
|
|
+ colValue2.add(resultDBJson.get("0-back总测试数"));
|
|
|
+ colValue2.add(resultDBJson.get("1-back总测试数"));
|
|
|
+ colValue2.add(resultDBJson.get("2-back总测试数"));
|
|
|
+ JSONObject row2 = new JSONObject(true);
|
|
|
+ row2.put("name", "总测试数");
|
|
|
+ row2.put("value", colValue2);
|
|
|
+ tableContext.add(row2);
|
|
|
+
|
|
|
+ List colValue3 = new ArrayList();
|
|
|
+ colValue3.add(resultDBJson.get("0-back正确数"));
|
|
|
+ colValue3.add(resultDBJson.get("1-back正确数"));
|
|
|
+ colValue3.add(resultDBJson.get("2-back正确数"));
|
|
|
+ JSONObject row3 = new JSONObject(true);
|
|
|
+ row3.put("name", "正确数");
|
|
|
+ row3.put("value", colValue3);
|
|
|
+ tableContext.add(row3);
|
|
|
+
|
|
|
+ List colValue4 = new ArrayList();
|
|
|
+ colValue4.add(resultDBJson.get("0-back正确率"));
|
|
|
+ colValue4.add(resultDBJson.get("1-back正确率"));
|
|
|
+ colValue4.add(resultDBJson.get("2-back正确率"));
|
|
|
+ JSONObject row4 = new JSONObject(true);
|
|
|
+ row4.put("name", "正确率");
|
|
|
+ row4.put("value", colValue4);
|
|
|
+ tableContext.add(row4);
|
|
|
+
|
|
|
+ List colValue5 = new ArrayList();
|
|
|
+ colValue5.add(resultDBJson.get("0-back平均反应时(ms)"));
|
|
|
+ colValue5.add(resultDBJson.get("1-back平均反应时(ms)"));
|
|
|
+ colValue5.add(resultDBJson.get("2-back平均反应时(ms)"));
|
|
|
+ JSONObject row5 = new JSONObject(true);
|
|
|
+ row5.put("name", "平均反应时(ms)");
|
|
|
+ row5.put("value", colValue5);
|
|
|
+ tableContext.add(row5);
|
|
|
+
|
|
|
+ List colValue6 = new ArrayList();
|
|
|
+ colValue6.add(resultDBJson.get("0-back测试用时"));
|
|
|
+ colValue6.add(resultDBJson.get("1-back测试用时"));
|
|
|
+ colValue6.add(resultDBJson.get("2-back测试用时"));
|
|
|
+ JSONObject row6 = new JSONObject(true);
|
|
|
+ row6.put("name", "测试用时");
|
|
|
+ row6.put("value", colValue6);
|
|
|
+ tableContext.add(row6);
|
|
|
+
|
|
|
+ } else if (Constant.QUEST_TYPE_ALERTNESS_YATAI.equals(type)) {
|
|
|
+ colNames.add("任务指标");
|
|
|
+ colNames.add("结果");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+ // 获取第一层每个key对应的值 的类型
|
|
|
+ for (String key : keys) {
|
|
|
+ //列值
|
|
|
+ List colValue = new ArrayList();
|
|
|
+ colValue.add(resultDBJson.get(key));
|
|
|
+ JSONObject row = new JSONObject(true);
|
|
|
+ row.put("name", key);
|
|
|
+ row.put("value", colValue);
|
|
|
+ tableContext.add(row);
|
|
|
+ }
|
|
|
+ } else if (Constant.QUEST_TYPE_SHAPE_YATAI.equals(type)) {
|
|
|
+ colNames.add("难度等级");
|
|
|
+ colNames.add("总次数");
|
|
|
+ colNames.add("正确次数");
|
|
|
+ colNames.add("正确率");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+ //列值
|
|
|
+ List colValue1 = new ArrayList();
|
|
|
+ colValue1.add(resultDBJson.get("一级难度测试总数"));
|
|
|
+ colValue1.add(resultDBJson.get("一级难度正确数"));
|
|
|
+ colValue1.add(resultDBJson.get("一级难度正确率"));
|
|
|
+ JSONObject row1 = new JSONObject(true);
|
|
|
+ row1.put("name", "1");
|
|
|
+ row1.put("value", colValue1);
|
|
|
+ tableContext.add(row1);
|
|
|
+
|
|
|
+ List colValue2 = new ArrayList();
|
|
|
+ colValue2.add(resultDBJson.get("二级难度测试总数"));
|
|
|
+ colValue2.add(resultDBJson.get("二级难度正确数"));
|
|
|
+ colValue2.add(resultDBJson.get("二级难度正确率"));
|
|
|
+ JSONObject row2 = new JSONObject(true);
|
|
|
+ row2.put("name", "2");
|
|
|
+ row2.put("value", colValue2);
|
|
|
+ tableContext.add(row2);
|
|
|
+
|
|
|
+ List colValue3 = new ArrayList();
|
|
|
+ colValue3.add(resultDBJson.get("三级难度测试总数"));
|
|
|
+ colValue3.add(resultDBJson.get("三级难度正确数"));
|
|
|
+ colValue3.add(resultDBJson.get("三级难度正确率"));
|
|
|
+ JSONObject row3 = new JSONObject(true);
|
|
|
+ row3.put("name", "3");
|
|
|
+ row3.put("value", colValue3);
|
|
|
+ tableContext.add(row3);
|
|
|
+
|
|
|
+ List colValue4 = new ArrayList();
|
|
|
+ colValue4.add(resultDBJson.get("四级难度测试总数"));
|
|
|
+ colValue4.add(resultDBJson.get("四级难度正确数"));
|
|
|
+ colValue4.add(resultDBJson.get("四级难度正确率"));
|
|
|
+ JSONObject row4 = new JSONObject(true);
|
|
|
+ row4.put("name", "4");
|
|
|
+ row4.put("value", colValue4);
|
|
|
+ tableContext.add(row4);
|
|
|
+
|
|
|
+ List colValue5 = new ArrayList();
|
|
|
+ colValue5.add(resultDBJson.get("五级难度测试总数"));
|
|
|
+ colValue5.add(resultDBJson.get("五级难度正确数"));
|
|
|
+ colValue5.add(resultDBJson.get("五级难度正确率"));
|
|
|
+ JSONObject row5 = new JSONObject(true);
|
|
|
+ row5.put("name", "5");
|
|
|
+ row5.put("value", colValue5);
|
|
|
+ tableContext.add(row5);
|
|
|
+
|
|
|
+ List colValue6 = new ArrayList();
|
|
|
+ colValue6.add(resultDBJson.get("六级难度测试总数"));
|
|
|
+ colValue6.add(resultDBJson.get("六级难度正确数"));
|
|
|
+ colValue6.add(resultDBJson.get("六级难度正确率"));
|
|
|
+ JSONObject row6 = new JSONObject(true);
|
|
|
+ row6.put("name", "6");
|
|
|
+ row6.put("value", colValue6);
|
|
|
+ tableContext.add(row6);
|
|
|
+ } else if (Constant.QUEST_TYPE_ANT_YATAI.equals(type) || Constant.QUEST_TYPE_ANT_FISH.equals(type) || Constant.QUEST_TYPE_ANT_FISH_YATAI.equals(type)) {
|
|
|
+ colNames.add("测试条件");
|
|
|
+ colNames.add("命中率");
|
|
|
+ colNames.add("反应时(ms)");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+ //列值
|
|
|
+ List colValue1 = new ArrayList();
|
|
|
+ colValue1.add(resultDBJson.get("命中率"));
|
|
|
+ colValue1.add(resultDBJson.get("反应时"));
|
|
|
+ JSONObject row1 = new JSONObject(true);
|
|
|
+ row1.put("name", "整体实验");
|
|
|
+ row1.put("value", colValue1);
|
|
|
+ tableContext.add(row1);
|
|
|
+
|
|
|
+ List colValue2 = new ArrayList();
|
|
|
+ colValue2.add(resultDBJson.get("一致性命中率"));
|
|
|
+ colValue2.add(resultDBJson.get("一致性反应时"));
|
|
|
+ JSONObject row2 = new JSONObject(true);
|
|
|
+ row2.put("name", "一致条件");
|
|
|
+ row2.put("value", colValue2);
|
|
|
+ tableContext.add(row2);
|
|
|
+
|
|
|
+ List colValue3 = new ArrayList();
|
|
|
+ colValue3.add(resultDBJson.get("不一致性命中率"));
|
|
|
+ colValue3.add(resultDBJson.get("不一致性反应时"));
|
|
|
+ JSONObject row3 = new JSONObject(true);
|
|
|
+ row3.put("name", "不一致条件");
|
|
|
+ row3.put("value", colValue3);
|
|
|
+ tableContext.add(row3);
|
|
|
+
|
|
|
+ List colValue4 = new ArrayList();
|
|
|
+ colValue4.add(resultDBJson.get("NoCue命中率"));
|
|
|
+ colValue4.add(resultDBJson.get("NoCue反应时"));
|
|
|
+ JSONObject row4 = new JSONObject(true);
|
|
|
+ row4.put("name", "无线索");
|
|
|
+ row4.put("value", colValue4);
|
|
|
+ tableContext.add(row4);
|
|
|
+
|
|
|
+ List colValue5 = new ArrayList();
|
|
|
+ colValue5.add(resultDBJson.get("NeutralCue命中率"));
|
|
|
+ colValue5.add(resultDBJson.get("NeutralCue反应时"));
|
|
|
+ JSONObject row5 = new JSONObject(true);
|
|
|
+ row5.put("name", "中立线索");
|
|
|
+ row5.put("value", colValue5);
|
|
|
+ tableContext.add(row5);
|
|
|
+
|
|
|
+ List colValue6 = new ArrayList();
|
|
|
+ colValue6.add(resultDBJson.get("SpatialCue命中率"));
|
|
|
+ colValue6.add(resultDBJson.get("SpatialCue反应时"));
|
|
|
+ JSONObject row6 = new JSONObject(true);
|
|
|
+ row6.put("name", "空间线索");
|
|
|
+ row6.put("value", colValue6);
|
|
|
+ tableContext.add(row6);
|
|
|
+
|
|
|
+ JSONObject dbJson2 = new JSONObject(true);
|
|
|
+ JSONArray tableContext2 = new JSONArray();
|
|
|
+ List colNames2 = new ArrayList();
|
|
|
+ colNames2.add("警报分数");
|
|
|
+ colNames2.add("定向分数");
|
|
|
+ colNames2.add("冲突分数");
|
|
|
+ dbJson2.put("colNames", colNames2);
|
|
|
+ List colValue7 = new ArrayList();
|
|
|
+ colValue7.add(resultDBJson.get("定向分数"));
|
|
|
+ colValue7.add(resultDBJson.get("冲突分数"));
|
|
|
+ JSONObject row7 = new JSONObject(true);
|
|
|
+ row7.put("name", resultDBJson.get("警报分数"));
|
|
|
+ row7.put("value", colValue7);
|
|
|
+ tableContext2.add(row7);
|
|
|
+ dbJson2.put("tableContext", tableContext2);
|
|
|
+ dbJsonList.add(dbJson2);
|
|
|
+ } else if (Constant.QUEST_TYPE_GTCT.equals(type)) {
|
|
|
+ colNames.add("难度等级");
|
|
|
+ colNames.add("正确率");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+
|
|
|
+ // 获取第一层每个key对应的值 的类型
|
|
|
+ for (int i = 0; i < keys.size(); i++) {
|
|
|
+
|
|
|
+ }
|
|
|
+ int y = 1;
|
|
|
+ for (String key : keys) {
|
|
|
+ if (!key.equals(y + "难度等级")) {
|
|
|
+ //列值
|
|
|
+ List colValue = new ArrayList();
|
|
|
+ colValue.add(resultDBJson.get(key));
|
|
|
+ JSONObject row = new JSONObject(true);
|
|
|
+ row.put("name", y);
|
|
|
+ row.put("value", colValue);
|
|
|
+ tableContext.add(row);
|
|
|
+ y++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (Constant.QUEST_TYPE_STROOP.equals(type)) {
|
|
|
+ colNames.add("试验");
|
|
|
+ colNames.add("完成时间/秒");
|
|
|
+ colNames.add("错误数目");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+ //列值
|
|
|
+ List colValue1 = new ArrayList();
|
|
|
+ colValue1.add(resultDBJson.get("StroopD完成时间(秒)"));
|
|
|
+ colValue1.add(resultDBJson.get("StroopD错误数目"));
|
|
|
+ JSONObject row1 = new JSONObject(true);
|
|
|
+ row1.put("name", "StroopD");
|
|
|
+ row1.put("value", colValue1);
|
|
|
+ tableContext.add(row1);
|
|
|
+
|
|
|
+ List colValue2 = new ArrayList();
|
|
|
+ colValue2.add(resultDBJson.get("StroopW完成时间(秒)"));
|
|
|
+ colValue2.add(resultDBJson.get("StroopW错误数目"));
|
|
|
+ JSONObject row2 = new JSONObject(true);
|
|
|
+ row2.put("name", "StroopW");
|
|
|
+ row2.put("value", colValue2);
|
|
|
+ tableContext.add(row2);
|
|
|
+
|
|
|
+ List colValue3 = new ArrayList();
|
|
|
+ colValue3.add(resultDBJson.get("StroopC完成时间(秒)"));
|
|
|
+ colValue3.add(resultDBJson.get("StroopC错误数目"));
|
|
|
+ JSONObject row3 = new JSONObject(true);
|
|
|
+ row3.put("name", "StroopC");
|
|
|
+ row3.put("value", colValue3);
|
|
|
+ tableContext.add(row3);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ colNames.add("项目");
|
|
|
+ colNames.add("内容");
|
|
|
+ dbJson.put("colNames", colNames);
|
|
|
+
|
|
|
+ // 获取第一层每个key对应的值 的类型
|
|
|
+ for (String key : keys) {
|
|
|
+ //列值
|
|
|
+ List colValue = new ArrayList();
|
|
|
+ colValue.add(resultDBJson.get(key));
|
|
|
+ JSONObject row = new JSONObject(true);
|
|
|
+ row.put("name", key);
|
|
|
+ row.put("value", colValue);
|
|
|
+ tableContext.add(row);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ dbJson.put("tableContext", tableContext);
|
|
|
+ dbJsonList.add(dbJson);
|
|
|
+
|
|
|
+
|
|
|
+ /*//计算结果
|
|
|
+ JSONObject dbJson = new JSONObject(true);
|
|
|
+ dbJson.put("row",keys.size());
|
|
|
+ dbJson.put("col",2);
|
|
|
+ //列名
|
|
|
+ List colNames = new ArrayList();
|
|
|
+ colNames.add("项目");
|
|
|
+ colNames.add("内容");
|
|
|
+ dbJson.put("colNames",colNames);
|
|
|
+ //行名
|
|
|
+ List rowNames = new ArrayList();
|
|
|
+ //rowNames.add("项目");
|
|
|
+ JSONObject mapping = new JSONObject(true);
|
|
|
+
|
|
|
+ // 获取第一层每个key对应的值 的类型
|
|
|
+ for (String key : keys) {
|
|
|
+ //String colValue = key;
|
|
|
+ //列值
|
|
|
+ List colValue = new ArrayList();
|
|
|
+ rowNames.add(key);
|
|
|
+ colValue.add(resultJson.get(key));
|
|
|
+ dbJson.put(key,colValue);
|
|
|
+ mapping.put(key,key);
|
|
|
+ }
|
|
|
+
|
|
|
+ dbJson.put("rowNames",rowNames);
|
|
|
+ dbJson.put("mapping",mapping);*/
|
|
|
+
|
|
|
+
|
|
|
+ int i = 1;
|
|
|
+ // 获取第一层每个key对应的值 的类型
|
|
|
+ for (String key : keys) {
|
|
|
+ if (i == keys.size()) {
|
|
|
+ testResult += key + ":" + resultDBJson.get(key);
|
|
|
+ } else {
|
|
|
+ testResult += key + ":" + resultDBJson.get(key) + ";";
|
|
|
+ }
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ //测试记录
|
|
|
+ UserRecordEntity userRecordEntity ;
|
|
|
+ String filePath = null;
|
|
|
+ filePath = "./心理检测/检测结果/" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/" + name + "/" + fileName;
|
|
|
+ if (Constant.QUEST_TYPE_RIVEN.equals(type) || Constant.QUEST_TYPE_GO_NO_GO2.equals(type) || Constant.QUEST_TYPE_SC.equals(type)
|
|
|
+ ||Constant.QUEST_TYPE_REM.equals(type) || Constant.QUEST_TYPE_MOVEMENT.equals(type) || Constant.QUEST_TYPE_MEMORY.equals(type)
|
|
|
+ || Constant.QUEST_TYPE_MEMORYT.equals(type) || Constant.QUEST_TYPE_RDT.equals(type) || Constant.QUEST_TYPE_GTCT.equals(type)
|
|
|
+ || Constant.QUEST_TYPE_SHAPE.equals(type) || Constant.QUEST_TYPE_ANT.equals(type) || Constant.QUEST_TYPE_SHAPE2.equals(type)){
|
|
|
+ userRecordEntity = testRecord(type, phone, institutionNo, testTime, filePath, resultDBJson.toString(), name, b64Img, datas, testResult, testPlanId);
|
|
|
+ }else {
|
|
|
+ userRecordEntity = testRecord(type, phone, institutionNo, testTime, filePath, dbJsonList.toString(), name, b64Img, datas, testResult, testPlanId);
|
|
|
+ }
|
|
|
+ System.out.println("resultJson:" + resultJson);
|
|
|
+ return success(userRecordEntity.getId(), "完成");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //瑞文根据年龄分值转换
|
|
|
+ private int RIVENScore(String userBirthday, int score) throws Exception {
|
|
|
+ int resultScore = 0;
|
|
|
+ double age = AgeUtil.getAge(userBirthday);
|
|
|
+ if (age <= 5.5) {
|
|
|
+ if (score >= 9 && score < 12) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 12 && score < 13) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 13 && score < 16) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 16 && score < 25) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 25 && score < 29) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 29 && score < 34) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 34) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 6) {
|
|
|
+ if (score >= 9 && score < 12) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 12 && score < 13) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 13 && score < 17) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 17 && score < 25) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 25 && score < 31) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 31 && score < 36) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 36) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 6.5) {
|
|
|
+ if (score >= 10 && score < 12) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 12 && score < 13) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 13 && score < 18) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 18 && score < 25) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 25 && score < 31) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 31 && score < 37) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 37) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 7) {
|
|
|
+ if (score >= 10 && score < 12) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 12 && score < 13) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 13 && score < 19) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 19 && score < 25) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 25 && score < 36) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 36 && score < 43) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 43) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 7.5) {
|
|
|
+ if (score >= 10 && score < 12) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 12 && score < 13) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 13 && score < 21) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 21 && score < 31) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 31 && score < 38) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 38 && score < 44) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 44) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 8) {
|
|
|
+ if (score >= 10 && score < 13) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 13 && score < 15) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 15 && score < 23) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 23 && score < 31) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 31 && score < 39) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 39 && score < 44) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 44) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ } else if (age == 8.5) {
|
|
|
+ if (score >= 12 && score < 14) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 14 && score < 20) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 20 && score < 29) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 29 && score < 33) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 33 && score < 40) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 40 && score < 45) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 45) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 9) {
|
|
|
+ if (score >= 12 && score < 14) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 14 && score < 25) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 25 && score < 33) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 33 && score < 37) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 37 && score < 43) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 43 && score < 47) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 47) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 9.5) {
|
|
|
+ if (score >= 13 && score < 17) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 17 && score < 27) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 27 && score < 35) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 35 && score < 39) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 39 && score < 47) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 47 && score < 50) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 50) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 10) {
|
|
|
+ if (score >= 13 && score < 17) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 17 && score < 27) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 27 && score < 35) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 35 && score < 42) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 42 && score < 48) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 48 && score < 50) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 50) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 10.5) {
|
|
|
+ if (score >= 18 && score < 25) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 25 && score < 32) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 32 && score < 39) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 39 && score < 42) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 42 && score < 49) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 49 && score < 50) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 50) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 11) {
|
|
|
+ if (score >= 19 && score < 25) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 25 && score < 33) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 33 && score < 39) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 39 && score < 43) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 43 && score < 50) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 50 && score < 52) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 52) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 11.5) {
|
|
|
+ if (score >= 19 && score < 25) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 25 && score < 35) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 35 && score < 42) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 42 && score < 45) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 45 && score < 50) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 50 && score < 53) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 53) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 12) {
|
|
|
+ if (score >= 21 && score < 27) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 27 && score < 37) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 37 && score < 42) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 42 && score < 46) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 46 && score < 50) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 50 && score < 53) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 53) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 12.5) {
|
|
|
+ if (score >= 28 && score < 33) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 33 && score < 40) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 40 && score < 45) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 45 && score < 50) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 50 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 53) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 53) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 13) {
|
|
|
+ if (score >= 30 && score < 35) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 35 && score < 40) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 40 && score < 45) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 45 && score < 50) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 50 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 53) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 53) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 13.5) {
|
|
|
+ if (score >= 32 && score < 35) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 35 && score < 42) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 42 && score < 46) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 46 && score < 50) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 50 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 54) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 54) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 14) {
|
|
|
+ if (score >= 34 && score < 36) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 36 && score < 43) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 43 && score < 48) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 48 && score < 50) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 50 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 55) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 55) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 14.5) {
|
|
|
+ if (score >= 34 && score < 36) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 36 && score < 43) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 43 && score < 48) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 48 && score < 51) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 51 && score < 53) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 53 && score < 55) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 55) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 15) {
|
|
|
+ if (score >= 34 && score < 36) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 36 && score < 43) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 43 && score < 48) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 48 && score < 51) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 51 && score < 54) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 54 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 15.5) {
|
|
|
+ if (score >= 34 && score < 41) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 41 && score < 43) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 43 && score < 49) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 49 && score < 52) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 52 && score < 55) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 55 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 16) {
|
|
|
+ if (score >= 36 && score < 41) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 41 && score < 44) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 44 && score < 49) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 49 && score < 53) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 53 && score < 56) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 56 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 16.5) {
|
|
|
+ if (score >= 37 && score < 41) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 41 && score < 45) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 45 && score < 49) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 49 && score < 53) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 53 && score < 56) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 56 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age == 17) {
|
|
|
+ if (score >= 37 && score < 40) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 40 && score < 47) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 47 && score < 52) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 52 && score < 55) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 55 && score < 57) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 57 && score < 58) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 58) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age > 17 && age <= 24.5) {//20
|
|
|
+ if (score >= 33 && score < 38) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 38 && score < 44) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 44 && score < 50) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 50 && score < 54) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 54 && score < 56) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 56 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age >= 25 && age <= 34.5) {//30
|
|
|
+ if (score >= 28 && score < 37) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 37 && score < 43) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 43 && score < 48) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 48 && score < 52) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 52 && score < 55) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 55 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age >= 35 && age <= 44.5) {//40
|
|
|
+ if (score >= 28 && score < 31) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 31 && score < 41) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 41 && score < 47) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 47 && score < 50) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 50 && score < 54) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 54 && score < 57) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 57) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age >= 45 && age <= 54.5) {//50
|
|
|
+ if (score >= 21 && score < 24) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 24 && score < 34) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 34 && score < 42) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 42 && score < 48) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 48 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 54) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 54) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (age >= 55 && age <= 64.5) {//60
|
|
|
+ if (score >= 19 && score < 22) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 22 && score < 30) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 30 && score < 37) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 37 && score < 46) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 46 && score < 52) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 52 && score < 54) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 54) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {//70
|
|
|
+ if (score >= 17 && score < 18) {
|
|
|
+ resultScore = 5;
|
|
|
+ } else if (score >= 18 && score < 26) {
|
|
|
+ resultScore = 10;
|
|
|
+ } else if (score >= 26 && score < 33) {
|
|
|
+ resultScore = 25;
|
|
|
+ } else if (score >= 33 && score < 44) {
|
|
|
+ resultScore = 50;
|
|
|
+ } else if (score >= 44 && score < 49) {
|
|
|
+ resultScore = 75;
|
|
|
+ } else if (score >= 49 && score < 52) {
|
|
|
+ resultScore = 90;
|
|
|
+ } else if (score >= 52) {
|
|
|
+ resultScore = 95;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return resultScore;
|
|
|
+ }
|
|
|
+
|
|
|
+ private UserRecordEntity testRecord(String taskCode, String phone, String institutionNo, String testTime, String fileName, String testResult, String name, String b64Img, String datas, String testResults, String testPlanId) {
|
|
|
+ //根据taskCode记录测试数
|
|
|
+ this.cognitiveTaskService.addTestNum(taskCode);
|
|
|
+ //添加用户测试记录
|
|
|
+ UserRecordEntity userRecordEntity = new UserRecordEntity();
|
|
|
+ userRecordEntity.setFlag(taskCode);
|
|
|
+ userRecordEntity.setPhone(phone);
|
|
|
+ userRecordEntity.setInstitutionNo(institutionNo);
|
|
|
+ userRecordEntity.setTestDate(testTime);
|
|
|
+ userRecordEntity.setTestResult(testResult);
|
|
|
+ userRecordEntity.setType("1");
|
|
|
+ userRecordEntity.setFileName(fileName);
|
|
|
+ userRecordEntity.setName(name);
|
|
|
+ userRecordEntity.setImg(b64Img);
|
|
|
+ userRecordEntity.setTestRecord(datas);
|
|
|
+ userRecordEntity.setTestResults(testResults);
|
|
|
+ if (testPlanId == null || testPlanId.equals("")) {
|
|
|
+ userRecordEntity.setTestPlanId("0");
|
|
|
+ } else {
|
|
|
+ userRecordEntity.setTestPlanId(testPlanId);
|
|
|
+ }
|
|
|
+ this.userRecordService.save(userRecordEntity);
|
|
|
+ return userRecordEntity;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|