From 8a237469ec680603b1c662dc7e67bd3ff0bbfd2a Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期六, 21 三月 2020 19:01:00 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge --- app/src/main/java/safeluck/drive/evaluation/Constant.java | 2 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java | 3 app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java | 13 + app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java | 1 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt | 90 ++++++- app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java | 107 +++++++++ app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt | 101 +++++++++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java | 2 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 123 ++++------ app/src/main/java/safeluck/drive/evaluation/app.java | 85 ++++-- app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java | 6 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java | 2 app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java | 41 +++ app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java | 2 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 55 ----- 15 files changed, 453 insertions(+), 180 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java index adf6c25..2100f97 100644 --- a/app/src/main/java/safeluck/drive/evaluation/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java @@ -97,4 +97,6 @@ public static final String TIME_MINUTE = "show_time_minute"; @NotNull public static final String MCU_UPGRADE_FAIL_RESASON = "mcu_upgrade_fail_reason"; + @NotNull + public static final String TTS="tts_judge"; } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java index 2afb858..14ce36b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java @@ -35,6 +35,8 @@ import safeluck.drive.evaluation.DB.failitems.FailProjDao; import safeluck.drive.evaluation.DB.failitems.FailedProj; import safeluck.drive.evaluation.DB.failitems.FailedProjWorker; +import safeluck.drive.evaluation.DB.failitems.LuKaoFailProjDao; +import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj; import safeluck.drive.evaluation.DB.gps.GPSInfo; import safeluck.drive.evaluation.DB.gps.GpsInfoDao; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; @@ -51,7 +53,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false) +@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class,LuKaoFailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false) public abstract class WorkRoomDataBase extends RoomDatabase { private static final String TAG = "WorkRoomDataBase"; public abstract StudentDao getstudentDao(); @@ -147,4 +149,6 @@ * @return */ public abstract CriteriaIIIDao getCriteriaIIIDao(); + + public abstract LuKaoFailProjDao getLuKaoFailProjDao(); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java index b1d275e..2fce6db 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java @@ -19,6 +19,9 @@ * item_id item_content deducting_reason score_deducting required _precision 23 璧锋 杞﹂棬鏈畬鍏ㄥ叧闂捣姝� 涓嶅悎鏍� 琛岄┒璺濈澶т簬1m 鏃� **************/ + + + @PrimaryKey @ColumnInfo(name = "item_id") @NonNull diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java index 3054aea..8274f9e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIDao.java @@ -26,4 +26,6 @@ @Query( "SELECT * FROM criteria_one WHERE item_id =:item_id") LiveData<CriteriaForI > queryItemForCriteriaI(int item_id); + @Query( "SELECT * FROM criteria_one WHERE item_id =:item_id") + CriteriaForI queryItemForCriteriaINoLive(int item_id); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java index 8d2dd32..c320aa1 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java @@ -25,4 +25,6 @@ @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id") LiveData<CriteriaForIII > queryItemForCriteriaIII(int item_id); + @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id") + CriteriaForIII queryItemForCriteriaIIINoLive(int item_id); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt index e1a173c..ab9f51b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt @@ -1,7 +1,10 @@ package safeluck.drive.evaluation.DB.exam_status import android.content.Context +import android.os.Environment +import android.text.TextUtils import android.util.Log +import android.widget.Toast import androidx.work.Data import androidx.work.Worker import androidx.work.WorkerParameters @@ -16,10 +19,13 @@ import safeluck.drive.evaluation.DB.WorkRoomDataBase import safeluck.drive.evaluation.DB.rtktb.RTKConfig import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig +import safeluck.drive.evaluation.app import safeluck.drive.evaluation.bean.ExamPlatformData import safeluck.drive.evaluation.bean.SignalConfigRemote import safeluck.drive.evaluation.bean.SimulateNightBean import safeluck.drive.evaluation.bean.SimulateNightBean.QuestionBean +import safeluck.drive.evaluation.util.CThreadPoolExecutor +import safeluck.drive.evaluation.util.FileUtil import safeluck.drive.evaluation.util.Utils import java.io.IOException import java.io.InputStreamReader @@ -47,22 +53,12 @@ tempQs.add(list[list.size-1])//鎻愮ず鐏厜鑰冭瘯缁撴潫 simulateNightBean.setQuestion(tempQs) AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean)) - + sendMapInfo() + sendVehicleInfo() MyLog.i(TAG,"鏌ュ埌鐨勮�冭瘯type="+examType) ExamPlatformData.getInstance().examType = examType - val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build() - if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) { - try { - val jsonObject = JSONObject() - jsonObject.put("exam", 1) - jsonObject.put("type", examType) - val examJson = jsonObject.toString() - AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.EXAM_STATUS, examJson) - } catch (e: JSONException) { - e.printStackTrace() - } - } + var rtk = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao._getRtkConfig() if (rtk == null){ try { @@ -111,7 +107,18 @@ sendSignalConfigsToRemote(indexs) - + val data = Data.Builder().putInt(Constant.EXAM_STATUS_TYPE,examType).build() + if (examType != safeluck.drive.evaluation.Constant.NONE_BEEN_START_EXAM) { + try { + val jsonObject = JSONObject() + jsonObject.put("exam", 1) + jsonObject.put("type", examType) + val examJson = jsonObject.toString() + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.EXAM_STATUS, examJson) + } catch (e: JSONException) { + e.printStackTrace() + } + } return Result.success(data) } @@ -160,4 +167,59 @@ } } + + private fun sendMapInfo(){ + val mapPath = ExamPlatformData.getInstance().mapPath + if (!TextUtils.isEmpty(mapPath)) { + MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘$mapPath") + val fileContent = FileUtil.readFile(mapPath) + if (fileContent != null) { + val str = String(fileContent) + Log.i(TAG,"鏂囦欢鍐呭锛�$str") + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_MAP_INFO, str) + } else { + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", mapPath)) + CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), "鏂囦欢锛�" + mapPath + "涓嶅瓨鍦�", Toast.LENGTH_SHORT).show() } + } + } else { + MyLog.i("璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�") + var buffer: StringBuffer? + buffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.ROAD_MAP) + if (buffer != null) { + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_ROAD_MAP_INFO, buffer.toString()) + } else { + MyLog.i( String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName)) + CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName), Toast.LENGTH_SHORT).show() } + } + buffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.MAP) + if (buffer != null) { + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_MAP_INFO, buffer.toString()) + } else { + MyLog.i( String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName)) + CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName), Toast.LENGTH_SHORT).show() } + } + } + } + + private fun sendVehicleInfo(){ + val carPath = ExamPlatformData.getInstance().carModelPath + if (!TextUtils.isEmpty(carPath)) { + MyLog.i("浣跨敤鏇存柊鍚庣殑Car妯″瀷鍦板浘$carPath") + val bytes = FileUtil.readFile(carPath) + if (bytes != null) { + val str = String(bytes) + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_VECHILE_PROFILE, str) + } else { + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", carPath)) + } + } else { + val vebuffer = FileUtil.readAssetTxtFile(applicationContext, safeluck.drive.evaluation.Constant.VEHICLE) + if (vebuffer != null) { + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_VECHILE_PROFILE, vebuffer.toString()) + } else { + MyLog.i(String.format("杞﹁締妯″瀷妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.packageName)) + } + } + } + } \ No newline at end of file diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java index f6f50dd..46552c5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java @@ -21,7 +21,6 @@ */ @Entity(tableName = "fail_projects",foreignKeys = {@ForeignKey(entity = CriteriaForI.class, parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),@ForeignKey(entity = CriteriaForII.class, - parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),@ForeignKey(entity = CriteriaForIII.class, parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE)},indices = @Index(value = {"emp_id"})) public class FailedProj { @PrimaryKey(autoGenerate = true) diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java index 47b6daf..da614b5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java @@ -21,10 +21,12 @@ private FailProjDao failProjDao; + private LuKaoFailProjDao luKaofailProjDao; public FailedProjRepository(Application application) { WorkRoomDataBase dataBase = WorkRoomDataBase.getWorkRoomDataBase(application); failProjDao = dataBase.getFailProjDao(); + luKaofailProjDao = dataBase.getLuKaoFailProjDao(); } @@ -34,6 +36,15 @@ public void run() { failProjDao.insert(proj); + } + }); + } + public void insertLuKao(final LuKaoFailedProj proj) { + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + + luKaofailProjDao.insert(proj); } }); } @@ -75,7 +86,7 @@ * @return */ public LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id) { - return failProjDao.getFailedProjectsForIII(stu_id); + return luKaofailProjDao.getFailedProjectsForIII(stu_id); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java index c62956c..60e62f2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java @@ -10,7 +10,7 @@ */ public class FailedProj_select { - @ColumnInfo(name = "emp_id") + private int emp_id; private long stu_id; diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java new file mode 100644 index 0000000..5cc6367 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailProjDao.java @@ -0,0 +1,41 @@ +package safeluck.drive.evaluation.DB.failitems; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; + +import java.util.List; + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 18:08:08 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +@Dao +public interface LuKaoFailProjDao { + + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insert(LuKaoFailedProj proj); + + /** + * 鏌ヨ 绉戠洰涓� 璺�冭�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級 + * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃 + * @return + */ + @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_three INNER JOIN lukao_fail_projects ON criteria_three.item_id= lukao_fail_projects.emp_id where lukao_fail_projects.stu_id=:stu_id and lukao_fail_projects.subject=3") + LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id); + + /** + * 鑾峰彇澶辫触椤圭洰鏉℃暟 + * @param subject_id + * @return + */ + @Query("SELECT COUNT(*) from lukao_fail_projects where subject=:subject_id") + LiveData<Integer> getSubject(int subject_id); + + @Query("delete from fail_projects") + void deleteAll(); +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java new file mode 100644 index 0000000..431c6e0 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/LuKaoFailedProj.java @@ -0,0 +1,107 @@ +package safeluck.drive.evaluation.DB.failitems; + +import androidx.room.ColumnInfo; +import androidx.room.Entity; +import androidx.room.ForeignKey; +import androidx.room.Index; +import androidx.room.PrimaryKey; + +import safeluck.drive.evaluation.DB.criterias.CriteriaForI; +import safeluck.drive.evaluation.DB.criterias.CriteriaForII; +import safeluck.drive.evaluation.DB.criterias.CriteriaForIII; + +import static androidx.room.ForeignKey.CASCADE; + +/** + * MyApplication2 + * 澶辫触椤圭洰鏉$洰 + * Created by lzw on 2019/11/26. 17:59:20 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +@Entity(tableName = "lukao_fail_projects",foreignKeys = {@ForeignKey(entity = CriteriaForIII.class, + parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE)},indices = @Index(value = {"emp_id"})) +public class LuKaoFailedProj { + @PrimaryKey(autoGenerate = true) + private int id; + + + + @ColumnInfo(name = "stu_id") + private long stu_id; + +// =1 I绫昏�冨満 ==2 II绫昏�冨満 3-璺�� + @ColumnInfo(name = "subject") + private int subject; + + //浣滀负澶栭敭锛屽搴擨绫昏�冨満鐨刬tem_id + @ColumnInfo(name = "emp_id") + private int emp_id; + private int sn; + private String utc; + public LuKaoFailedProj(int subject, int emp_id, long stu_id, String utc, int sn) { + this.subject = subject; + this.emp_id = emp_id; + this.stu_id = stu_id; + this.sn = sn; + this.utc = utc; + } + public int getSn() { + return sn; + } + + public void setSn(int sn) { + this.sn = sn; + } + + public String getUtc() { + return utc; + } + + public void setUtc(String utc) { + this.utc = utc; + } + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public long getStu_id() { + return stu_id; + } + + public void setStu_id(long stu_id) { + this.stu_id = stu_id; + } + + public int getSubject() { + return subject; + } + + public void setSubject(int subject) { + this.subject = subject; + } + + public int getEmp_id() { + return emp_id; + } + + public void setEmp_id(int emp_id) { + this.emp_id = emp_id; + } + + @Override + public String toString() { + return "FailedProj{" + + "id=" + id + + ", stu_id=" + stu_id + + ", subject=" + subject + + ", emp_id=" + emp_id + + ", sn=" + sn + + ", utc='" + utc + '\'' + + '}'; + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index a1a51b2..336d630 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -45,10 +45,12 @@ import safeluck.drive.evaluation.DB.failitems.FailedProj; import safeluck.drive.evaluation.DB.failitems.FailedProjRepository; import safeluck.drive.evaluation.DB.failitems.FailedProj_select; +import safeluck.drive.evaluation.DB.failitems.LuKaoFailedProj; import safeluck.drive.evaluation.DB.gps.GpsInfoWorker; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; import safeluck.drive.evaluation.DB.rtktb.RTKConfigUpdateWorker; import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; +import safeluck.drive.evaluation.bean.ExamMap; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.cEventCenter.CEvent; import safeluck.drive.evaluation.cEventCenter.CEventCenter; @@ -65,6 +67,7 @@ import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.util.SystemUtil; import safeluck.drive.evaluation.worker.MCUUpgradeWorker; +import safeluck.drive.evaluation.worker.TTSWorker; /** * MyApplication2 @@ -155,8 +158,8 @@ } switch (cmd) { case Constant.NDK_START: - sendVechileInfo(); - sendMapInfo(); +// sendVechileInfo(); +// sendMapInfo(); OneTimeWorkRequest examStatausOutWorker = OneTimeWorkRequest.from(ExamStatusOutWorker.class); OneTimeWorkRequest mcuUpgradeWorker = OneTimeWorkRequest.from(MCUUpgradeWorker.class); WorkManager.getInstance(getApplicationContext()).beginWith(examStatausOutWorker).then(mcuUpgradeWorker).enqueue(); @@ -186,7 +189,9 @@ case Constant.JUDGE_INFO: if(!TextUtils.isEmpty(json)){ - + Data judgeData = new Data.Builder().putString(Constant.TTS,json).build(); + OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build(); + WorkManager.getInstance(getAppContext()).enqueue(ttswoker); JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray(); for (int i = 0; i < jsonArray.size(); i++) { JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); @@ -196,24 +201,24 @@ utc = utc.substring(2,utc.length()-3); MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc="+utc); int sn = jsonObject.get("sn").getAsInt(); - if (ExamPlatformData.getInstance().getExamType()==2){//鍦哄湴璇勫垽娑堟伅 - if (emp_id>31|| emp_id<0){ - MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�"); - return; - } - FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn); - MyLog.i("鎻掑叆fail_projects琛�="+failedProj.toString()); - failedProjRepository.insert(failedProj); - } - if (ExamPlatformData.getInstance().getExamType()>2){//閬撹矾 璇勫垽娑堟伅 - if (emp_id>66|| emp_id<1){ - MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�"); - return; - } - FailedProj failedProj = new FailedProj(Constant.SUBJECT_III, emp_id, Constant.TEST_STU_ID,utc,sn); - MyLog.i("鎻掑叆璺�僨ail_projects琛�="+failedProj.toString()); +// if (ExamPlatformData.getInstance().getExamType()==2){//鍦哄湴璇勫垽娑堟伅 +// if (emp_id>31|| emp_id<0){ +// MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�"); +// return; +// } +// FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn); +// MyLog.i("鎻掑叆fail_projects琛�="+failedProj.toString()); // failedProjRepository.insert(failedProj); - } +// } +// if (ExamPlatformData.getInstance().getExamType()>2){//閬撹矾 璇勫垽娑堟伅 +// if (emp_id>66|| emp_id<1){ +// MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�"); +// return; +// } +// LuKaoFailedProj failedProj = new LuKaoFailedProj(Constant.SUBJECT_III, emp_id, Constant.TEST_STU_ID,utc,sn); +// MyLog.i("鎻掑叆璺�僨ail_projects琛�="+failedProj.toString()); +// failedProjRepository.insertLuKao(failedProj); +// } } } @@ -469,20 +474,36 @@ Toast.makeText(getAppContext(), "璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�", Toast.LENGTH_SHORT).show(); } }); - StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.ROAD_MAP); - if (buffer != null){ + StringBuffer buffer; + buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.ROAD_MAP); + if (buffer != null){ - AYSdk.getInstance().sendCmd(Constant.PUSH_ROAD_MAP_INFO,buffer.toString()); - }else{ - MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); - CThreadPoolExecutor.runOnMainThread(new Runnable() { - @Override - public void run() { - Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show(); - } - }); + AYSdk.getInstance().sendCmd(Constant.PUSH_ROAD_MAP_INFO,buffer.toString()); + }else{ + MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show(); + } + }); - } + } + buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP); + if (buffer != null){ + + AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString()); + }else{ + MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show(); + } + }); + + } + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index 77bb4f6..0184737 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -287,8 +287,6 @@ mScoreAdapter.addDatas(mArrayList); MyLog.i("item_score="+item_id); } - //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊 - sendJKMessage0203(failedProj_selects); MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore); currTotalScore -=item_id; MyLog.i("璺�冨綋鍓嶅緱鍒嗭細"+currTotalScore); @@ -332,8 +330,6 @@ mScoreAdapter.addDatas(mArrayList); MyLog.i("item_score="+item_id); } - //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊 - sendJKMessage0203(failedProj_selects); MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore); currTotalScore -=item_id; MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore); @@ -425,59 +421,8 @@ return view; } private List<Integer> sns =new ArrayList<>(); - 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("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+failedProj_selects.get(i).getSn()); - sns.add(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 (sns.size() > 0){ - for (int j = 0; j < sns.size(); j++) { - MyLog.i("宸插瓨鍦ㄧ殑sn"+sns.get(j)); - if (sns.get(j) == failedProjSn){ - MyLog.i("sn鐩稿悓锛屼笉鍙�"+sns.get(j)); - return true; - }else{ - continue; - } - } - - } - return false; - - } private void initView(View view) { diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java index e01e7e5..6cd2d21 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java @@ -303,7 +303,7 @@ MyLog.i("item_score="+item_id); } //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊 - sendJKMessage0203(failedProj_selects); +// sendJKMessage0203(failedProj_selects); MyLog.i("娌℃墸鍒嗕箣鍓嶅緱鍒嗭細"+currTotalScore); currTotalScore -=item_id; MyLog.i("褰撳墠寰楀垎锛�"+currTotalScore); @@ -395,59 +395,53 @@ 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(); +// 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("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+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(); +// } +// +// } - 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("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"+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 ; +// MessageProcessor.getInstance().sendMessage(jkMessage0203); +// } - 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; - - } +// 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; +// +// } @@ -538,6 +532,7 @@ public void changKao() { exam_type = 2; iv_head.getDrawable().setLevel(1); + ExamPlatformData.getInstance().setExamType(exam_type); examStatusViewModel.updateStartExam(exam_type); sendExamJson(1,exam_type); ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�"); @@ -551,36 +546,14 @@ @Override public void luKao() { exam_type = 3; + ExamPlatformData.getInstance().setExamType(exam_type); examStatusViewModel.updateStartExam(exam_type); sendExamJson(1,exam_type); - if (simulateNightBean == null){ - simulateNightBean = new SimulateNightBean(); - } - iv_head.getDrawable().setLevel(1); - simulateNightBean.setExam(0); - ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭缁�"); - ExamPlatformData.getInstance().setTrainingMode(true);//璁剧疆涓鸿缁冩ā寮� - final List<SimulateNightBean.QuestionBean> list = ExamPlatformData.getInstance().getSimulate_light_tips(); - simulateNightBean.setQuestion(list.subList(list.size()-2,list.size()-1)); - AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean)); jkMessage0202.curr_exam = 1; MessageProcessor.getInstance().sendMessage(jkMessage0202); - tempQs.add(list.get(0)); - int [] a =Utils.getRandomInts(4,12); - for (int i = 0; i < a.length; i++) { - tempQs.add(list.get(a[i])); - } - simulateNightBean.setQuestion(tempQs); - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - AYSdk.getInstance().sendCmd(0x8012,gson.toJson(simulateNightBean)); - tempQs.clear(); - } - },10*1000); } }); diff --git a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt new file mode 100644 index 0000000..25851fd --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt @@ -0,0 +1,101 @@ +package safeluck.drive.evaluation.worker + +import android.content.Context +import android.text.TextUtils +import androidx.work.Worker +import androidx.work.WorkerParameters +import com.anyun.exam.lib.MyLog +import com.google.gson.Gson +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.LuKaoFailedProj +import safeluck.drive.evaluation.bean.ExamPlatformData +import safeluck.drive.evaluation.im.MessageProcessor +import safeluck.drive.evaluation.platformMessage.JKMessage0203 + +/** + * 涓�鏀跺埌杩滅▼鏈嶅姟缁欑殑璇勫垽娑堟伅 + * 瀹炵幇鎻掑叆绉戜簩銆佺涓夊け璐ラ」鐩〃 + * 鎾斁tts + * 鍙戦��0203璇勫垽娑堟伅缁欐湇鍔″櫒 + */ +class TTSWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) { + var gson:Gson =Gson() + override fun doWork(): Result { + val jkMessage0203 = JKMessage0203() + jkMessage0203.phone = ExamPlatformData.getInstance().phone + jkMessage0203.ID = ExamPlatformData.getInstance().id + jkMessage0203.exam_id = ExamPlatformData.getInstance().exam_id + var ttsInput = inputData.getString(Constant.TTS); + + + val jsonArray = JsonParser.parseString(ttsInput).asJsonArray + + for ( i in 0 until jsonArray.size()) { + val jsonObject = jsonArray[i].asJsonObject + val emp_id = jsonObject["wrong_id"].asInt + var utc = jsonObject["utc"].asString + MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪墠鐨剈tc=$utc") + utc = utc.substring(2, utc.length - 3) + MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc=$utc") + val sn = jsonObject["sn"].asInt + + if (emp_id>1000){ + var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIIIDao.queryItemForCriteriaIIINoLive(emp_id-1000) + ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" + + ttsStr.getScore_deducting() + "鍒�") + jkMessage0203.fail_item_id = ttsStr.item_id + jkMessage0203.fail_score = ttsStr.score_deducting + jkMessage0203.fail_reason = ttsStr.deducting_reason + }else{ + var ttsStr=WorkRoomDataBase.getWorkRoomDataBase(applicationContext).criteriaIDao.queryItemForCriteriaINoLive(emp_id) + ExamPlatformData.getInstance().tts.speak(ttsStr.getDeducting_reason() + if (ttsStr.getScore_deducting() == 100) "涓嶅悎鏍�" else "鎵�" + + ttsStr.getScore_deducting() + "鍒�") + jkMessage0203.fail_item_id =ttsStr.item_id + jkMessage0203.fail_score = ttsStr.score_deducting + jkMessage0203.fail_reason = ttsStr.deducting_reason + } + + + if (!TextUtils.isEmpty(utc) && utc.length > 12) { + utc = utc.substring(0, 12) + } + jkMessage0203.timeBCD = utc + + + MessageProcessor.getInstance().sendMessage(jkMessage0203) + + + + if (emp_id<1000) { //鍦哄湴璇勫垽娑堟伅 + if (emp_id > 31 || emp_id < 0) { + MyLog.i("emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�") + + }else{ + val failedProj = FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID, utc, sn) + MyLog.i("鎻掑叆fail_projects琛�=$failedProj") + WorkRoomDataBase.getWorkRoomDataBase(applicationContext).failProjDao.insert(failedProj) + } + + } + if (emp_id>1000) { //閬撹矾 璇勫垽娑堟伅 + + if (emp_id >1066 || emp_id < 1000) { + MyLog.i("emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙璺�冪被鑰冨満锛�") + }else{ + val failedProj = LuKaoFailedProj(Constant.SUBJECT_III, (emp_id-1000), Constant.TEST_STU_ID, utc, sn) + MyLog.i("鎻掑叆璺�僨ail_projects琛�=$failedProj") + WorkRoomDataBase.getWorkRoomDataBase(applicationContext).luKaoFailProjDao.insert(failedProj) + } + + } + + + } + + + return Result.success() + } +} \ No newline at end of file -- Gitblit v1.8.0