|
@@ -2,8 +2,6 @@ package org.diagbot.graphWeb.work;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import org.diagbot.graph.jdbc.DriverManager;
|
|
|
-import org.diagbot.graph.jdbc.Neo4jAPI;
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.util.ArrayList;
|
|
@@ -35,20 +33,67 @@ public class ScaleCalculate {
|
|
|
for (Map<String, Object> rows : rowsList) {
|
|
|
List<Map<String, Object>> rowList = (List<Map<String, Object>>) rows.get("row");
|
|
|
//多条选第一条
|
|
|
- Map<String, Object> firstRow = rowList.get(0);
|
|
|
- int coefficient = Integer.valueOf(firstRow.get("coefficient").toString());
|
|
|
- int constant = Integer.valueOf(firstRow.get("constant").toString());
|
|
|
- List<Map<String, Object>> detailsList = (List<Map<String, Object>>) firstRow.get("details");
|
|
|
- for (Map<String, Object> details : detailsList) {
|
|
|
- if (Integer.valueOf(details.get("select").toString()) == 1) {
|
|
|
- Double score = Double.valueOf(details.get("score").toString());
|
|
|
- //分值*系数+常数
|
|
|
- score = score * coefficient + constant;
|
|
|
- groupSum += score;
|
|
|
- sum += score;
|
|
|
+ Map<String, Object> firstRow = null;
|
|
|
+ if (rowList.size() > 1) {
|
|
|
+ int i = 0;
|
|
|
+ JSONArray selectList = new JSONArray();
|
|
|
+ for (Map<String, Object> row : rowList) {
|
|
|
+ List<Map<String, Object>> detailsList = (List<Map<String, Object>>) row.get("details");
|
|
|
+ for (Map<String, Object> details : detailsList) {
|
|
|
+ if (Integer.valueOf(details.get("select").toString()) == 1) {
|
|
|
+ i += 1;
|
|
|
+ if (!selectList.contains(row)) {
|
|
|
+ selectList.add(row);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i > 1) {
|
|
|
+ firstRow = (Map<String, Object>) selectList.get(0);
|
|
|
+ int coefficient = Integer.valueOf(firstRow.get("coefficient").toString());
|
|
|
+ int constant = Integer.valueOf(firstRow.get("constant").toString());
|
|
|
+ List<Map<String, Object>> detailsList = (List<Map<String, Object>>) firstRow.get("details");
|
|
|
+ for (Map<String, Object> details : detailsList) {
|
|
|
+ if (details.get("select") != null && Integer.valueOf(details.get("select").toString()) == 1) {
|
|
|
+ Double score = Double.valueOf(details.get("score").toString());
|
|
|
+ //分值*系数+常数
|
|
|
+ score = score * coefficient + constant;
|
|
|
+ groupSum += score;
|
|
|
+ sum += score;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (Map<String, Object> row : rowList) {
|
|
|
+ int coefficient = Integer.valueOf(row.get("coefficient").toString());
|
|
|
+ int constant = Integer.valueOf(row.get("constant").toString());
|
|
|
+ List<Map<String, Object>> detailsList = (List<Map<String, Object>>) row.get("details");
|
|
|
+ for (Map<String, Object> details : detailsList) {
|
|
|
+ if (details.get("select") != null && Integer.valueOf(details.get("select").toString()) == 1) {
|
|
|
+ Double score = Double.valueOf(details.get("score").toString());
|
|
|
+ //分值*系数+常数
|
|
|
+ score = score * coefficient + constant;
|
|
|
+ groupSum += score;
|
|
|
+ sum += score;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ firstRow = rowList.get(0);
|
|
|
+ int coefficient = Integer.valueOf(firstRow.get("coefficient").toString());
|
|
|
+ int constant = Integer.valueOf(firstRow.get("constant").toString());
|
|
|
+ List<Map<String, Object>> detailsList = (List<Map<String, Object>>) firstRow.get("details");
|
|
|
+ for (Map<String, Object> details : detailsList) {
|
|
|
+ if (details.get("select") != null && Integer.valueOf(details.get("select").toString()) == 1) {
|
|
|
+ Double score = Double.valueOf(details.get("score").toString());
|
|
|
+ //分值*系数+常数
|
|
|
+ score = score * coefficient + constant;
|
|
|
+ groupSum += score;
|
|
|
+ sum += score;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
// String text = scaleResultText(groupSum);
|
|
|
JSONObject groupCalculate = new JSONObject();
|
|
@@ -86,8 +131,8 @@ public class ScaleCalculate {
|
|
|
result.put("value", sum);
|
|
|
calcalculate.put("result", result);
|
|
|
scaleCalcResult.put("calcalculate", calcalculate);
|
|
|
- }else {
|
|
|
- scaleCalcResult.put("errMsg","量表类型错误。");
|
|
|
+ } else {
|
|
|
+ scaleCalcResult.put("errMsg", "量表类型错误。");
|
|
|
}
|
|
|
return scaleCalcResult;
|
|
|
}
|
|
@@ -155,7 +200,7 @@ public class ScaleCalculate {
|
|
|
}
|
|
|
} else if ("女".equals(genderDetail.get("detailName"))) {
|
|
|
k = 0.7f;
|
|
|
- denger = Double.valueOf(genderDetail.get("value").toString()) ;
|
|
|
+ denger = Double.valueOf(genderDetail.get("value").toString());
|
|
|
if (scr <= 0.70) {
|
|
|
a = -0.329;
|
|
|
} else {
|