From 9859fc6b5e4f873400fb1e7ae143f79fe32010b8 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期六, 21 三月 2020 13:09:47 +0800 Subject: [PATCH] 提交路考地图增加触发线 --- app/src/main/java/safeluck/drive/evaluation/Constant.java | 1 app/src/main/java/safeluck/drive/evaluation/app.java | 24 +++++++++--- app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 12 ++++++ app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java | 2 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.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 | 2 + app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusOutWorker.kt | 11 ++--- app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java | 10 ++++ app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java | 30 +++++++++++++++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java | 3 + 11 files changed, 96 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java index e6bc036..adf6c25 100644 --- a/app/src/main/java/safeluck/drive/evaluation/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java @@ -88,6 +88,7 @@ public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC"; public static final int EXIT_CURRENT_ITEM = 0;//閫�鍑烘煇鍦哄湴 public static final String RTK_INFO_SAT_QF = "RTK_INFO_SAT_QF";//浠嶳TK info涓幏鍙栫殑鍗槦棰楁暟鍜宷f 缁勬垚鐨刯son + public static final int SUBJECT_III = 3;//璺�� public static String exam_enter_exitdata="exam_enter_exitdata"; public static int Chang_di = 2; public static int DaoLu_night = 3; 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 d211da3..b1d275e 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 @@ -11,7 +11,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD * - * 绉戠洰浜� II绫昏�冨満璇勫垽鏍囧噯琛� + * 璺�冪被鑰冨満璇勫垽鏍囧噯琛� */ @Entity(tableName = "criteria_three") public class CriteriaForIII { 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 485910a..e1a173c 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 @@ -28,32 +28,29 @@ val TAG:String = "ExamStatusOutWorker" private var signalConfiglist: MutableList<SignalConfigRemote> = ArrayList() private val gson = Gson() - lateinit var simulateNightBean:SimulateNightBean + var simulateNightBean:SimulateNightBean=SimulateNightBean() private var singalConfigs :List<SingalConfig> = ArrayList() private val tempQs: MutableList<QuestionBean> = java.util.ArrayList() override fun doWork(): Result { val examType =WorkRoomDataBase.getWorkRoomDataBase(applicationContext).examStatusDao.startExamInt; - simulateNightBean = SimulateNightBean() simulateNightBean.setExam(0) val list = ExamPlatformData.getInstance().simulate_light_tips - simulateNightBean.setQuestion(list.subList(list.size - 2, list.size - 1)) - - - + tempQs.add(list[list.size-2])//鎻愮ず涓嬮潰灏嗚繘琛岀伅鍏夎�冭瘯 tempQs.add(list[0]) val a = Utils.getRandomInts(4, 12) for (i in a.indices) { tempQs.add(list[a[i]]) } - + tempQs.add(list[list.size-1])//鎻愮ず鐏厜鑰冭瘯缁撴潫 simulateNightBean.setQuestion(tempQs) AYSdk.getInstance().sendCmd(0x8012, gson.toJson(simulateNightBean)) 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 { diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java index fd52cf7..3473fd7 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatusViewModel.java @@ -8,6 +8,8 @@ import java.util.List; +import safeluck.drive.evaluation.bean.ExamPlatformData; + public class ExamStatusViewModel extends AndroidViewModel { ExamStatusWorkRepo examStatusWorkRepo; LiveData<List<ExamStatus>> examStatus; @@ -32,6 +34,7 @@ } public void updateStartExam(int statExam) { + examStatusWorkRepo.updateStartExam(statExam); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java index 39fe12a..87fad35 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java @@ -4,6 +4,7 @@ import androidx.room.Dao; import androidx.room.Delete; import androidx.room.Insert; +import androidx.room.OnConflictStrategy; import androidx.room.Query; import java.util.List; @@ -17,7 +18,7 @@ @Dao public interface FailProjDao { - @Insert + @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(FailedProj proj); /** @@ -34,6 +35,13 @@ */ @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_two INNER JOIN fail_projects ON criteria_two.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=2") LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id); + /** + * 鏌ヨ 绉戠洰涓� 璺�冭�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級 + * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃 + * @return + */ + @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_three INNER JOIN fail_projects ON criteria_three.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=3") + LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id); /** * 鑾峰彇澶辫触椤圭洰鏉℃暟 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 5c4fa41..f6f50dd 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 @@ -8,6 +8,7 @@ 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; @@ -20,6 +21,7 @@ */ @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 838dac3..47b6daf 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 @@ -4,8 +4,11 @@ import androidx.lifecycle.LiveData; +import com.anyun.exam.lib.MyLog; + import java.util.List; +import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.WorkRoomDataBase; /** @@ -65,5 +68,15 @@ */ public LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id) { return failProjDao.getFailedProjectsForII(stu_id); + } /** + * 鑾峰緱绉戠洰涓� 璺�冭�冨満澶辫触椤圭洰鎵e垎椤� + * + * @param stu_id + * @return + */ + public LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id) { + return failProjDao.getFailedProjectsForIII(stu_id); } + + } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java index a2874c9..098cc70 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java @@ -29,6 +29,9 @@ public LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id){ return failedProjRepository.getFailedProjectsForII(stu_id); } + public LiveData<List<FailedProj_select>> getFailedProjectsForIII(long stu_id){ + return failedProjRepository.getFailedProjectsForIII(stu_id); + } public void insert(FailedProj proj){ failedProjRepository.insert(proj); } diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 1ce605c..a1a51b2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -196,13 +196,25 @@ utc = utc.substring(2,utc.length()-3); MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc="+utc); int sn = jsonObject.get("sn").getAsInt(); - if (emp_id>31|| emp_id<0){ - MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�"); - return; + 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); } - 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()); +// failedProjRepository.insert(failedProj); + } + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index 3d3434a..728e6c3 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -34,6 +34,10 @@ private String mPhone = "";//鑰冭瘯骞冲彴娑堟伅鐢ㄥ埌鐨刾hone + private int examType = 0;//2 鍦哄湴锛� +//3 閬撹矾锛屾ā鎷熷鑰冿紱 +// 4 閬撹矾锛屽疄闄呭鑰冿紱 + public static final int TCP_DISCONNECT = 1; public static final int TCP_CONNECTED = 2;///2-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛� public static final int DEV_NOT_REGISTERED = 3; @@ -338,4 +342,12 @@ setQfAndSatNum(0,0); setExamplatformStatus(0); } + + public int getExamType() { + return examType; + } + + public void setExamType(int examType) { + this.examType = examType; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java index 8b719c1..9ae9d92 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragmentaa.java @@ -280,15 +280,33 @@ if (maps != null&& maps.size()>0){ for (int i = 0; i < maps.size(); i++) { RoadExamMap.MapsBean mapItem = maps.get(i); + if (mapItem.getItem() == ALL_MAP){ List<List<Integer>> redLines= mapItem.getRed_line(); List<List<Integer>> greenLines = mapItem.getGreen_line(); + List<List<Integer>> allTringgerLines = mapItem.getAll_trigger_line(); + + + for (List<Integer> allTriggerLine: allTringgerLines + ) { + for (int kk = 1; kk < allTriggerLine.size(); kk++) { + int pos = allTriggerLine.get(kk); + if (kk ==1){ + path.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); + } + path.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); + Log.i(TAG,String.format("trigerline map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1], + (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y))); + } + } + paint.reset(); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(1.5f); paint.setAntiAlias(true); paint.setColor(Color.RED); paint.setPathEffect(null); + Log.i(TAG,"redLinesSize"+redLines.size()); for (List<Integer> redline: redLines ) { @@ -326,6 +344,18 @@ } canvas2.drawPath(path,paint); + }else{ + List<Integer> area = mapItem.getArea(); + for (int jj = 0; jj < area.size(); jj++) { + int pos = area.get(jj); + if (jj==0){ + path.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); + }else{ + path.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); + } + } + path.close(); + canvas2.drawPath(path,paint); } } -- Gitblit v1.8.0