app/src/main/java/safeluck/drive/evaluation/app.java
@@ -69,6 +69,7 @@ import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.util.SystemUtil; import safeluck.drive.evaluation.util.Utils; import safeluck.drive.evaluation.worker.MCUUpgradeWorker; import safeluck.drive.evaluation.worker.TTSWorker; @@ -192,11 +193,13 @@ case Constant.JUDGE_INFO: if(!TextUtils.isEmpty(json)){ Data judgeData = new Data.Builder().putString(Constant.TTS,json).build(); final JsonArray jsonArray = (JsonArray) JsonParser.parseString(json); final JKMessage0203 jkMessage0203 = new JKMessage0203(); OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build(); WorkManager.getInstance(getAppContext()).enqueue(ttswoker); // Data judgeData = new Data.Builder().putString(Constant.TTS,json).build(); final JsonArray jsonArray = (JsonArray) JsonParser.parseString(json); // // OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build(); // WorkManager.getInstance(getAppContext()).enqueue(ttswoker); CThreadPoolExecutor.runInBackground(new Runnable() { @Override @@ -210,17 +213,31 @@ CriteriaForIII ttsStr=WorkRoomDataBase.getWorkRoomDataBase(getAppContext()).getCriteriaIIIDao().queryItemForCriteriaIIINoLive(emp_id-1000); ExamPlatformData.getInstance().getTTS().speak(ttsStr.getDeducting_reason() + (ttsStr.getScore_deducting() == 100? "不合格" : "扣" + ttsStr.getScore_deducting() + "分")); jkMessage0203.fail_item_id =ttsStr.getItem_id(); jkMessage0203.fail_score = ttsStr.getScore_deducting(); jkMessage0203.fail_reason = ttsStr.getDeducting_reason(); }else{ CriteriaForI ttsStr = WorkRoomDataBase.getWorkRoomDataBase(getAppContext()).getCriteriaIDao().queryItemForCriteriaINoLive(emp_id); ExamPlatformData.getInstance().getTTS().speak(ttsStr.getDeducting_reason() + (ttsStr.getScore_deducting() == 100? "不合格" : "扣" + ttsStr.getScore_deducting() + "分")); jkMessage0203.fail_item_id =ttsStr.getItem_id(); jkMessage0203.fail_score = ttsStr.getScore_deducting(); jkMessage0203.fail_reason = ttsStr.getDeducting_reason(); } if (!TextUtils.isEmpty(utc) && utc.length() > 14) { utc = utc.substring(0, 14); } Date date = new Date(Utils.utc2NetWorkTime(utc)); jkMessage0203.timeBCD = date; MyLog.i(String.format("收到远程服务给的评判消息 timeBCD=%s",Utils.formatTimeYYMMDDHHmmSS(jkMessage0203.timeBCD.getTime()))); MessageProcessor.getInstance().sendMessage(jkMessage0203); if (emp_id<1000) { //场地评判消息 if (emp_id > 31 || emp_id < 0) { MyLog.i("emp_id超出范围不能插入数据库(I类考场)"); }else{ FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID, utc, sn); MyLog.i("插入fail_projects表=$failedProj"); WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getFailProjDao().insert(failedProj); @@ -232,6 +249,7 @@ if (emp_id >1066 || emp_id < 1000) { MyLog.i("emp_id超出范围不能插入数据库(路考类考场)"); }else{ LuKaoFailedProj failedProj = new LuKaoFailedProj(Constant.SUBJECT_III, (emp_id-1000), Constant.TEST_STU_ID, utc, sn); MyLog.i("插入路考fail_projects表=$failedProj"); WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLuKaoFailProjDao().insert(failedProj); app/src/main/java/safeluck/drive/evaluation/bean/ScoreBean.java
@@ -31,11 +31,12 @@ this.mItem = mItem; this.reason = reason; if (Utils.isDigital(utc)){ MyLog.i("utc时间不是纯数字"); }else{ mUtc = Utils.dateToLongSec(utc); }else{ MyLog.i("utc时间不是纯数字"+utc); } } app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -408,8 +408,8 @@ MyLog.i("当前得分:"+currTotalScore); if (currTotalScore < Constant.PASSING_SCORE){ MyLog.i("场考低于80,不合格"+currTotalScore); ExamPlatformData.getInstance().getTTS().speak("考试不合格"); stopExam(); // ExamPlatformData.getInstance().getTTS().speak("考试不合格"); // stopExam(); } MyLog.i("场考监测到有失败项目加入,通知UI更新颜色"); mHandler.obtainMessage(ADD_DATA).sendToTarget(); @@ -589,10 +589,7 @@ public void onClick(View v) { switch (v.getId()) { case R.id.btn_start: OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); item_id = 0; currTotalScore = 100; //TODO 发送JKMessage0202 给平台,开始考试 final JKMessage0202 jkMessage0202 = new JKMessage0202(); Date date = new Date(); @@ -602,7 +599,6 @@ jkMessage0202.ID = ExamPlatformData.getInstance().getID(); jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); failedProjViewModel.deleteAll(); if (myDialogFragment == null){ myDialogFragment = new MyDialogFragment(); @@ -694,6 +690,7 @@ private void stopExam() { MyLog.i(TAG,"结束考试"); //TODO 发送JKMessage0204给平台 结束考试 JKMessage0204 jkMessage0204 = new JKMessage0204(); jkMessage0204.timeBCD = new Date(); @@ -707,10 +704,10 @@ //恢复初始数据 OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); item_id = 0; currTotalScore = 100; failedProjViewModel.deleteAll(); tv_total_score.setText(String.valueOf(currTotalScore)); iv_head.getDrawable().setLevel(0); app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -46,6 +46,8 @@ import safeluck.drive.evaluation.platformMessage.JKMessage0206; import safeluck.drive.evaluation.util.SPUtils; import static safeluck.drive.evaluation.util.Utils.utc2NetWorkTime; /** * MyApplication2 * Created by lzw on 2019/10/21. 17:56:51 @@ -234,7 +236,7 @@ break; case R.id.btn_fail: JKMessage0203 jkMessage0203 = new JKMessage0203(); jkMessage0203.timeBCD = "200226135444"; jkMessage0203.timeBCD = new Date(utc2NetWorkTime("20200330101455")); jkMessage0203.fail_item_id = 4; jkMessage0203.fail_score = 10; jkMessage0203.fail_reason = "发动机启动后,不及时松开启动开关"; app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java
@@ -16,12 +16,8 @@ @Ascii public String ID; @Order(2) @Length(6) @Hex public String timeBCD; // @Order(2) // @BcdDateTime // public Date timeBCD; @BcdDateTime public Date timeBCD; @Order(3) @Int32 public int exam_id; app/src/main/java/safeluck/drive/evaluation/util/Utils.java
@@ -356,6 +356,12 @@ System.out.println( isDigital("2003233d")); System.out.println( isDigital("d2003233")); System.out.println( dateToLongSec("20200330101455")); Date date = new Date(utc2NetWorkTime("20200330142612")); System.out.println(date.getTime() ); System.out.println("date="+formatTimeYYMMDDHHmmSS(date.getTime()) ); System.out.println( formatTimeYYMMDDHHmmSS(1585578372000L)); @@ -449,7 +455,7 @@ } public static long dateToLongSec(String utc) { // MyLog.i("dateToLongSec:"+utc); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = null; try { @@ -457,6 +463,22 @@ } catch (ParseException e) { e.printStackTrace(); } if (date==null){ // MyLog.i("dateToLongSec date==null"); return new Date().getTime(); } return date.getTime()/1000; } public static long utc2NetWorkTime(String utc){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date date = null; try { date = simpleDateFormat.parse(utc); } catch (ParseException e) { e.printStackTrace(); } long utcTime = date.getTime()+8*60*60*1000; return utcTime; } } app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt
@@ -9,12 +9,11 @@ import com.google.gson.JsonParser import safeluck.drive.evaluation.Constant import safeluck.drive.evaluation.DB.WorkRoomDataBase import safeluck.drive.evaluation.DB.failitems.FailedProj import safeluck.drive.evaluation.DB.failitems.FailedProj_select import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj import safeluck.drive.evaluation.bean.ExamPlatformData import safeluck.drive.evaluation.im.MessageProcessor import safeluck.drive.evaluation.platformMessage.JKMessage0203 import safeluck.drive.evaluation.util.Utils import java.util.* /** * 一收到远程服务给的评判消息 @@ -140,7 +139,8 @@ if (!TextUtils.isEmpty(utc) && utc.length > 12) { utc = utc.substring(0, 12) } jkMessage0203.timeBCD = utc val date = Date(Utils.utc2NetWorkTime(utc)) jkMessage0203.timeBCD = date MessageProcessor.getInstance().sendMessage(jkMessage0203)