lizhanwei
2020-03-22 40eb16208b55967ec994c00b4e873db9a1e175d0
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -283,46 +283,98 @@
        initView(view);
        failedProjViewModel = ViewModelProviders.of(this).get(FailedProjViewModel.class);
        failedProjViewModel.getFailedProjectsForIII(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
            @Override
            public void onChanged(List<FailedProj_select> failedProj_selects) {
                if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){
                    MyLog.i("现在是路考状态,监视路考数据失败项目");
                    if (failedProj_selects != null && failedProj_selects.size()>0){
                        item_id = 0;
                        currTotalScore = 100;
                        mArrayList.clear();
                        item_conents.clear();
                        for (FailedProj_select f :
                                failedProj_selects) {
                            item_id += f.getScore_deducting();
                            Log.i(TAG, "onChanged: " + f.toString());
                            mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                            item_conents.add(f.getItem_content());
                            Collections.reverse(mArrayList);
                            mScoreAdapter.addDatas(mArrayList);
                            MyLog.i("item_score="+item_id);
                        }
                        MyLog.i("没扣分之前得分:"+currTotalScore);
                        currTotalScore -=item_id;
                        MyLog.i("路考当前得分:"+currTotalScore);
                        if (currTotalScore < Constant.PASSING_SCORE){
                            MyLog.i("路考低于80,不合格"+currTotalScore);
//                                ExamPlatformData.getInstance().getTTS().speak("考试不合格");
//                                stopExam();
                        }
                        MyLog.i("路考监测到有失败项目加入,通知UI更新颜色");
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }else{
                        MyLog.i(TAG,"路考失败项目数据表被清空更新UI");
                        item_id = 0;
                        mArrayList.clear();
                        item_conents.clear();
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }
                }
            }
        });
        failedProjViewModel.getFailedProjectsForI(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
            @Override
            public void onChanged(List<FailedProj_select> failedProj_selects) {
                if (failedProj_selects != null && failedProj_selects.size()>0){
                if (ExamPlatformData.getInstance().getExamType()<=ExamPlatformData.EXAM_TYPE_ChangKAO){
                    if (failedProj_selects != null && failedProj_selects.size()>0){
                    item_id = 0;
                    currTotalScore = 100;
                    mArrayList.clear();
                    item_conents.clear();
                    for (FailedProj_select f :
                            failedProj_selects) {
                        item_id += f.getScore_deducting();
                        Log.i(TAG, "onChanged: " + f.toString());
                        mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                        item_conents.add(f.getItem_content());
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        MyLog.i("item_score="+item_id);
                    }
                    //TODO 发送JKMessage0203 给平台,这儿有点复杂,看怎么处理
                        item_id = 0;
                        currTotalScore = 100;
                        mArrayList.clear();
                        item_conents.clear();
                        for (FailedProj_select f :
                                failedProj_selects) {
                            item_id += f.getScore_deducting();
                            Log.i(TAG, "onChanged: " + f.toString());
                            mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                            item_conents.add(f.getItem_content());
                            Collections.reverse(mArrayList);
                            mScoreAdapter.addDatas(mArrayList);
                            MyLog.i("item_score="+item_id);
                        }
                        //TODO 发送JKMessage0203 给平台,这儿有点复杂,看怎么处理
//                    sendJKMessage0203(failedProj_selects);
                    MyLog.i("没扣分之前得分:"+currTotalScore);
                    currTotalScore -=item_id;
                    MyLog.i("当前得分:"+currTotalScore);
                    if (currTotalScore < Constant.PASSING_SCORE){
                        MyLog.i("低于80,不合格"+currTotalScore);
                        MyLog.i("没扣分之前得分:"+currTotalScore);
                        currTotalScore -=item_id;
                        MyLog.i("当前得分:"+currTotalScore);
                        if (currTotalScore < Constant.PASSING_SCORE){
                            MyLog.i("低于80,不合格"+currTotalScore);
//                        ExamPlatformData.getInstance().getTTS().speak("考试不合格");
//                        stopExam();
                        }
                        MyLog.i("监测到有失败项目加入,通知UI更新颜色");
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }else{
                        MyLog.i(TAG,"失败项目数据表被清空更新UI");
                        item_id = 0;
                        mArrayList.clear();
                        item_conents.clear();
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }
                    MyLog.i("监测到有失败项目加入,通知UI更新颜色");
                    mHandler.obtainMessage(ADD_DATA).sendToTarget();
                }else{
                    MyLog.i(TAG,"失败项目数据表被清空更新UI");
                    item_id = 0;
                    mArrayList.clear();
                    item_conents.clear();
                    Collections.reverse(mArrayList);
                    mScoreAdapter.addDatas(mArrayList);
                    mHandler.obtainMessage(ADD_DATA).sendToTarget();
                }
            }
        });
@@ -395,53 +447,6 @@
        return view;
    }
//    private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
////        JKMessage0203 jkMessage0203 = new JKMessage0203();
////        jkMessage0203.phone =  ExamPlatformData.getInstance().getPhone();
////        jkMessage0203.ID = ExamPlatformData.getInstance().getID();
////        jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
////
////        for (int i = 0; i < failedProj_selects.size(); i++) {
////            if (hasSnEqulas(failedProj_selects.get(i).getSn())){
////                MyLog.i("sn相同"+failedProj_selects.get(i).getSn());
////            }else{
////                ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
////                        failedProj_selects.get(i).getScore_deducting()==100?"不合格":"扣"+
////                                failedProj_selects.get(i).getScore_deducting()+"分"));
////                MyLog.i("没有相同的sn,发送"+failedProj_selects.get(i).getSn());
////                ExamPlatformData.getInstance().addSn(failedProj_selects.get(i).getSn());
////                String utc =   failedProj_selects.get(i).getUtc();
////                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
////                    utc =utc.substring(0,12);
////                }
////                jkMessage0203.timeBCD = utc ;
////
////                jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
////                jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
////                jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
////            }
////
////        }
//
////        MessageProcessor.getInstance().sendMessage(jkMessage0203);
////    }
//
////    private boolean hasSnEqulas(int failedProjSn){
////        if (ExamPlatformData.getInstance().getSns().size() > 0){
////            for (int j = 0; j < ExamPlatformData.getInstance().getSns().size(); j++) {
////                MyLog.i("已存在的sn"+ExamPlatformData.getInstance().getSns().get(j));
////                if (ExamPlatformData.getInstance().getSns().get(j) == failedProjSn){
////                    MyLog.i("sn相同,不发"+ExamPlatformData.getInstance().getSns().get(j));
////                    return true;
//                }else{
//                    continue;
//                }
//            }
//
//        }
//        return false;
//
//    }
@@ -532,6 +537,7 @@
                    public void changKao() {
                        exam_type = 2;
                        iv_head.getDrawable().setLevel(1);
                        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
                        ExamPlatformData.getInstance().setExamType(exam_type);
                        examStatusViewModel.updateStartExam(exam_type);
                        sendExamJson(1,exam_type);
@@ -546,6 +552,7 @@
                    @Override
                    public void luKao() {
                        exam_type = 3;
                        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
                        ExamPlatformData.getInstance().setExamType(exam_type);
                        examStatusViewModel.updateStartExam(exam_type);
                        sendExamJson(1,exam_type);
@@ -570,12 +577,21 @@
                break;
            case R.id.view_map:
                MapFragment mapFragment = findFragment(MapFragment.class);
                MyLog.i(TAG,"查看地图");
                if (mapFragment == null) {
                    mapFragment = (MapFragment) MapFragment.newInstance();
                if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){
                    RoadDriveMapFragmentaa mapFragment = findFragment(RoadDriveMapFragmentaa.class);
                    MyLog.i(TAG,"查看路考地图");
                    if (mapFragment == null) {
                        mapFragment = (RoadDriveMapFragmentaa) RoadDriveMapFragmentaa.newInstance();
                    }
                    start(mapFragment);
                }else{
                    MapFragment mapFragment = findFragment(MapFragment.class);
                    MyLog.i(TAG,"查看场考地图");
                    if (mapFragment == null) {
                        mapFragment = (MapFragment) MapFragment.newInstance();
                    }
                    start(mapFragment);
                }
                start(mapFragment);
                break;
            case R.id.btn_return:
                _mActivity.onBackPressed();
@@ -604,10 +620,7 @@
    }
    private void stopExam() {
        MyLog.i(TAG,"结束考试");
        //清空sns
        ExamPlatformData.getInstance().clearSns();
        MyLog.i(TAG,"结束训练");
        //设置模式为NONE 0
        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);