package com.rf.psychological.scale.resultBusiness.scaleResult;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.rf.psychological.utils.Constant;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * @author zsy
 * @description:思维风格量表
 * @date 2021/7/20 15:55
 */
public class TSIScale extends BaseScale{

    public TSIScale(JSONArray jsonArray, JSONObject resultJson) {
        super(jsonArray, resultJson);
    }

    public  JSONObject scaleCalculate() throws Exception {
        //总得分
        int score = 0;
        //立法型风格得分
        int score1 = 0;
        //执法型风格得分
        int score2 = 0;
        //审判型风格得分
        int score3 = 0;
        //专制型风格得分
        int score4 = 0;
        //等级型风格得分
        int score5 = 0;
        //平等竞争型风格得分
        int score6 = 0;
        //无政府主义型风格得分
        int score7 = 0;
        //全局型风格得分
        int score8 = 0;
        //局部型风格得分
        int score9 = 0;
        //内倾型风格得分
        int score10 = 0;
        //外倾型风格得分
        int score11 = 0;
        //激进型风格得分
        int score12 = 0;
        //保守型风格得分
        int score13 = 0;
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            if (i <= 7) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score1 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score1 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score1 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score1 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score1 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score1 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score1 += 7;
                }
            } else if (i <= 15 && i >= 8) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score2 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score2 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score2 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score2 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score2 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score2 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score2 += 7;
                }
            } else if (i <= 23 && i >= 16) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score3 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score3 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score3 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score3 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score3 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score3 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score3 += 7;
                }
            } else if (i <= 31 && i >= 24) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score4 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score4 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score4 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score4 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score4 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score4 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score4 += 7;
                }
            } else if (i <= 39 && i >= 32) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score5 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score5 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score5 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score5 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score5 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score5 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score5 += 7;
                }
            } else if (i <= 47 && i >= 40) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score6 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score6 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score6 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score6 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score6 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score6 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score6 += 7;
                }
            } else if (i <= 55 && i >= 48) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score7 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score7 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score7 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score7 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score7 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score7 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score7 += 7;
                }
            } else if (i <= 63 && i >= 56) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score8 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score8 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score8 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score8 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score8 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score8 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score8 += 7;
                }
            } else if (i <= 71 && i >= 64) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score9 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score9 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score9 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score9 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score9 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score9 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score9 += 7;
                }
            } else if (i <= 79 && i >= 72) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score10 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score10 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score10 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score10 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score10 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score10 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score10 += 7;
                }
            } else if (i <= 87 && i >= 80) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score11 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score11 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score11 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score11 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score11 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score11 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score11 += 7;
                }
            } else if (i <= 95 && i >= 88) {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score12 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score12 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score12 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score12 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score12 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score12 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score12 += 7;
                }
            } else {
                if (jsonObject1.getString("checkItems").equals("完全不符合")) {
                    score13 += 1;
                } else if (jsonObject1.getString("checkItems").equals("相当不符合")) {
                    score13 += 2;
                } else if (jsonObject1.getString("checkItems").equals("比较不符合")) {
                    score13 += 3;
                } else if (jsonObject1.getString("checkItems").equals("说不清")) {
                    score13 += 4;
                } else if (jsonObject1.getString("checkItems").equals("比较符合")) {
                    score13 += 5;
                } else if (jsonObject1.getString("checkItems").equals("相当符合")) {
                    score13 += 6;
                } else if (jsonObject1.getString("checkItems").equals("完全符合")) {
                    score13 += 7;
                }
            }
        }
        score += score1 + score2 + score3 + score4 + score5 + score6 + score7 + score8 + score9 + score10 + score11 + score12 + score13;
        //得分列表
        Map<String, String> resultMap = new LinkedHashMap<>();
        resultMap.put("思维风格总分", String.valueOf(score));
        resultJson.put("思维风格总分", String.valueOf(score));
        resultMap.put("立法型风格得分", String.valueOf(score1));
        resultJson.put("立法型风格得分", String.valueOf(score1));
        resultMap.put("执法型风格得分", String.valueOf(score2));
        resultJson.put("执法型风格得分", String.valueOf(score2));
        resultMap.put("审判型风格得分", String.valueOf(score3));
        resultJson.put("审判型风格得分", String.valueOf(score3));
        resultMap.put("专制型风格得分", String.valueOf(score4));
        resultJson.put("专制型风格得分", String.valueOf(score4));
        resultMap.put("等级型风格得分", String.valueOf(score5));
        resultJson.put("等级型风格得分", String.valueOf(score5));
        resultMap.put("平等竞争型风格得分", String.valueOf(score6));
        resultJson.put("平等竞争型风格得分", String.valueOf(score6));
        resultMap.put("无政府主义型风格得分", String.valueOf(score7));
        resultJson.put("无政府主义型风格得分", String.valueOf(score7));
        resultMap.put("全局型风格得分", String.valueOf(score8));
        resultJson.put("全局型风格得分", String.valueOf(score8));
        resultMap.put("局部型风格得分", String.valueOf(score9));
        resultJson.put("局部型风格得分", String.valueOf(score9));
        resultMap.put("内倾型风格得分", String.valueOf(score10));
        resultJson.put("内倾型风格得分", String.valueOf(score10));
        resultMap.put("外倾型风格得分", String.valueOf(score11));
        resultJson.put("外倾型风格得分", String.valueOf(score11));
        resultMap.put("激进型风格得分", String.valueOf(score12));
        resultJson.put("激进型风格得分", String.valueOf(score12));
        resultMap.put("保守型风格得分", String.valueOf(score13));
        resultJson.put("保守型风格得分", String.valueOf(score13));

        List<Map<String,String>> resultMapList = new ArrayList<>();
        resultMapList.add(resultMap);

        JSONObject returnJson = new JSONObject(true);
        returnJson.put("resultMapList",resultMapList);
        returnJson.put("scaleName",Constant.SHEET_NAME_TSI);
        returnJson.put("resultJson",resultJson);

        return returnJson;
    }
}
