From fedd2c77e7159e243d964f6e00a346d09b1d24d8 Mon Sep 17 00:00:00 2001
From: endian11 <Dana_Lee1016@126.com>
Date: 星期四, 21 一月 2021 10:57:49 +0800
Subject: [PATCH] 设置里面增加评判表更新功能和灯光题目库更新功能;模拟灯光结束关闭所有灯光修改wrong_code为41710不能正确关闭灯光不合格

---
 app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java                     |    1 
 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java         |   69 +++++++++++++
 app/src/main/assets/criteria.json                                                           |    8 +
 app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java |   89 +++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java              |   39 +++++++
 app/src/main/res/layout/layout_base_datas.xml                                               |   35 +++++++
 6 files changed, 241 insertions(+), 0 deletions(-)

diff --git a/app/src/main/assets/criteria.json b/app/src/main/assets/criteria.json
index a9feee7..878ed07 100644
--- a/app/src/main/assets/criteria.json
+++ b/app/src/main/assets/criteria.json
@@ -2150,5 +2150,13 @@
     "deducting_reason": "杩涘叆鏃犵収鏄庛�佺収鏄庝笉鑹殑閬撹矾琛岄┒鏃朵笉浣跨敤杩滃厜鐏�",
     "score_deducting":5,
     "required_precision":""
+  },
+  {
+
+    "item_id":41710,
+    "item_content": "妯℃嫙澶滆��",
+    "deducting_reason": "涓嶈兘姝g‘鍏抽棴鐏厜",
+    "score_deducting":100,
+    "required_precision":""
   }
 ]
\ No newline at end of file
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java
new file mode 100644
index 0000000..905d677
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaUpgradeWorker.java
@@ -0,0 +1,69 @@
+package safeluck.drive.evaluation.DB.criterias;
+
+import android.content.Context;
+import android.os.Environment;
+
+import androidx.annotation.NonNull;
+import androidx.work.Worker;
+import androidx.work.WorkerParameters;
+
+import com.anyun.basecommonlib.MyLog;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.google.gson.stream.JsonReader;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import safeluck.drive.evaluation.DB.Constant;
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 11:59:25
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class CriteriaUpgradeWorker extends Worker {
+
+    private static final String TAG = "CriteriaForIWorker";
+
+    public CriteriaUpgradeWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
+        super(context, workerParams);
+    }
+
+    @NonNull
+    @Override
+    public Result doWork() {
+
+        File file = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+
+                File.separator+ Constant.CRITERIA_JSON);
+
+        if (!file.exists()){
+            return Result.failure();
+        }
+        InputStream inputStream = null;
+        try {
+            inputStream =new FileInputStream(file);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+        JsonReader jsonReader = new JsonReader(inputStreamReader);
+        Gson gson = new Gson();
+        Type type = new TypeToken<List<Criteria>>(){}.getType();
+
+        List<Criteria> criteriaForIS = gson.fromJson(jsonReader,type);
+        MyLog.i(TAG,"鏇存柊璇勫垽琛�");
+        WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getCriteriaDao().insertAllCriteria(criteriaForIS);
+        if (file.exists()){
+            file.delete();
+        }
+        return Result.success();
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java
new file mode 100644
index 0000000..54f4f7f
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/DB/lightdb/LightsQuestAnswersUpgradeWorker.java
@@ -0,0 +1,89 @@
+package safeluck.drive.evaluation.DB.lightdb;
+
+import android.content.Context;
+import android.os.Environment;
+
+import androidx.annotation.NonNull;
+import androidx.work.Worker;
+import androidx.work.WorkerParameters;
+
+import com.anyun.basecommonlib.MyLog;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+import com.google.gson.stream.JsonReader;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Type;
+import java.util.List;
+
+import safeluck.drive.evaluation.Constant;
+import safeluck.drive.evaluation.DB.WorkRoomDataBase;
+import safeluck.drive.evaluation.DB.criterias.Criteria;
+
+/**
+ * MyApplication2
+ * Created by lzw on 2019/11/26. 11:59:25
+ * 閭锛�632393724@qq.com
+ * All Rights Saved! Chongqing AnYun Tech co. LTD
+ */
+public class LightsQuestAnswersUpgradeWorker extends Worker {
+
+    private static final String TAG = "CriteriaForIWorker";
+
+    public LightsQuestAnswersUpgradeWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
+        super(context, workerParams);
+    }
+
+    @NonNull
+    @Override
+    public Result doWork() {
+
+        File file = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+
+                File.separator+ Constant.LIGHT_ALL_ANSWER_JSON);
+
+        File fileQuest = new File(Environment.getExternalStorageDirectory()+File.separator+getApplicationContext().getPackageName()+
+                File.separator+ Constant.LIGHT_ALL_DEFAULT_JSON);
+
+        if (!file.exists()){
+            return Result.failure();
+        }
+        if (!fileQuest.exists()){
+            return Result.failure();
+        }
+        InputStream inputStream = null;
+        try {
+            inputStream =new FileInputStream(fileQuest);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+        JsonReader jsonReader = new JsonReader(inputStreamReader);
+        Gson gson = new Gson();
+        Type type = new TypeToken<List<LightQuestion>>(){}.getType();
+
+        List<LightQuestion> criteriaForIS = gson.fromJson(jsonReader,type);
+        MyLog.i(TAG,"鏇存柊鐏厜搴撴墍鏈夐棶棰橀儴鍒�");
+        WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLightAllQuestionsDao().insertAll(criteriaForIS);
+
+
+
+        try {
+            inputStream =new FileInputStream(file);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        inputStreamReader = new InputStreamReader(inputStream);
+        jsonReader = new JsonReader(inputStreamReader);
+
+        Type type1 = new TypeToken<List<LightAnswers>>(){}.getType();
+
+        List<LightAnswers> criteriaForISa = gson.fromJson(jsonReader,type1);
+        MyLog.i(TAG,"鏇存柊鐏厜搴撴墍鏈夌瓟妗堥儴鍒�");
+        WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getLightAllAnswersDao().insertAll(criteriaForISa);
+        return Result.success();
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
index 1029eb8..4993995 100644
--- a/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
+++ b/app/src/main/java/safeluck/drive/evaluation/bean/SimulateNightBean.java
@@ -62,6 +62,7 @@
                 this.solution.add(-6);
                 this.solution.add(-7);
                 this.solution.add(-8);
+                this.wrong_code = 41710;
             }
 
         }
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java
index 2229bc5..2e10dd8 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/SetArgumentsFragment.java
@@ -22,12 +22,14 @@
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.work.Data;
 import androidx.work.OneTimeWorkRequest;
+import androidx.work.Operation;
 import androidx.work.WorkInfo;
 import androidx.work.WorkManager;
 
 import com.anyun.exam.lib.AYSdk;
 import com.anyun.basecommonlib.MyLog;
 import com.anyun.exam.lib.util.ByteUtil;
+import com.google.common.util.concurrent.ListenableFuture;
 import com.google.gson.Gson;
 import com.safeluck.aykj.utils.BytesUtils;
 
@@ -45,6 +47,8 @@
 import safeluck.drive.evaluation.Constant;
 import safeluck.drive.evaluation.DB.appstatusdb.AppStatus;
 import safeluck.drive.evaluation.DB.appstatusdb.AppStatusViewModel;
+import safeluck.drive.evaluation.DB.criterias.CriteriaUpgradeWorker;
+import safeluck.drive.evaluation.DB.lightdb.LightsQuestAnswersUpgradeWorker;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfig;
 import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel;
 import safeluck.drive.evaluation.MainActivity;
@@ -177,6 +181,9 @@
         rtkPlatform_port = view.findViewById(R.id.rtk_addr_port);
         city = view.findViewById(R.id.city_id);
         province = view.findViewById(R.id.province_id);
+
+        view.findViewById(R.id.btn_lights_update).setOnClickListener(this);
+        view.findViewById(R.id.btn_judgedata_upgrade).setOnClickListener(this);
     }
     @Override
     public void onClick(View v) {
@@ -282,6 +289,38 @@
                 DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"road");
                 UserOpStatus.getInstance().resetRoadFileSelectState();
                 break;
+            case R.id.btn_judgedata_upgrade:
+                Toast.makeText(_mActivity, "鏇存柊璇勫垽琛�", Toast.LENGTH_SHORT).show();
+                OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(CriteriaUpgradeWorker.class);
+
+                WorkManager.getInstance(_mActivity).getWorkInfoByIdLiveData(oneTimeWorkRequest.getId()).observe(this, new Observer<WorkInfo>() {
+                    @Override
+                    public void onChanged(WorkInfo workInfo) {
+                        if (workInfo.getState()== WorkInfo.State.FAILED){
+                            Toast.makeText(_mActivity, "璇勫垽琛ㄦ枃浠朵笉瀛樺湪", Toast.LENGTH_SHORT).show();
+                        }else if (workInfo.getState() == WorkInfo.State.SUCCEEDED){
+                            Toast.makeText(_mActivity, "璇勫垽琛ㄦ洿鏂版垚鍔�", Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                });
+                WorkManager.getInstance(_mActivity).enqueue(oneTimeWorkRequest);
+                break;
+            case R.id.btn_lights_update:
+                Toast.makeText(_mActivity, "鏇存柊鐏厜棰樼洰搴�", Toast.LENGTH_SHORT).show();
+                OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(LightsQuestAnswersUpgradeWorker.class);
+
+                WorkManager.getInstance(_mActivity).getWorkInfoByIdLiveData(oneTimeWorkRequest1.getId()).observe(this, new Observer<WorkInfo>() {
+                    @Override
+                    public void onChanged(WorkInfo workInfo) {
+                        if (workInfo.getState()== WorkInfo.State.FAILED){
+                            Toast.makeText(_mActivity, "鐏厜搴撴洿鏂版枃浠朵笉瀛樺湪", Toast.LENGTH_SHORT).show();
+                        }else if (workInfo.getState() == WorkInfo.State.SUCCEEDED){
+                            Toast.makeText(_mActivity, "鐏厜棰樼洰搴撴洿鏂版垚鍔�", Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                });
+                WorkManager.getInstance(_mActivity).enqueue(oneTimeWorkRequest1);
+                break;
             default:
                 break;
         }
diff --git a/app/src/main/res/layout/layout_base_datas.xml b/app/src/main/res/layout/layout_base_datas.xml
index 7b3b3a0..84703e6 100644
--- a/app/src/main/res/layout/layout_base_datas.xml
+++ b/app/src/main/res/layout/layout_base_datas.xml
@@ -260,6 +260,41 @@
         </LinearLayout>
 
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_marginBottom="10dp"
+            android:layout_height="60dp"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/network_train_textsize25px"
+                android:text="鍦板浘鍗囩骇锛�"/>
+
+
+            <Button  android:layout_width="129dp"
+                android:layout_height="@dimen/ui_margin_50dp"
+                android:text="璇勫垽琛ㄥ崌绾�"
+                android:padding="5dp"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/network_train_textsize21px"
+                android:layout_marginLeft="60dp"
+                android:id="@+id/btn_judgedata_upgrade"
+                android:background="@drawable/btn_bg_baseset"/>
+            <Button  android:layout_width="129dp"
+                android:layout_height="@dimen/ui_margin_50dp"
+                android:text="鐏厜棰樼洰搴撳崌绾�"
+                android:padding="5dp"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/network_train_textsize21px"
+                android:id="@+id/btn_lights_update"
+                android:layout_marginLeft="8dp"
+                android:background="@drawable/btn_bg_baseset"/>
+
+
+        </LinearLayout>
     </LinearLayout>
     <Button
         android:id="@+id/btn_return"

--
Gitblit v1.8.0