From f6db8471b64ad5c7a67df3a4f6224a193c11d5ad Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期三, 27 十一月 2019 14:49:29 +0800 Subject: [PATCH] 提交失败项目相关数据库表;目前FailProj会导致崩溃 --- app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java | 41 +++++++++++++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java | 6 ++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java | 9 ++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java | 3 + app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 27 +++----- app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java | 12 +++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java | 32 ++++++++++ app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 3 8 files changed, 113 insertions(+), 20 deletions(-) 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 e7145d4..ffbf1b6 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 @@ -19,9 +19,19 @@ @Insert void insert(FailedProj proj); - @Query("SELECT emp_id,deducting_reason,score_deducting,item_content from criteria_one INNER JOIN fail_projects ON criteria_one.item_id=fail_projects.emp_id") + /** + * 鏌ヨ 绉戠洰浜� I绫昏�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級 + * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃 + * @return + */ + @Query("SELECT emp_id,deducting_reason,score_deducting,item_content from criteria_one INNER JOIN fail_projects ON criteria_one.item_id= fail_projects.emp_id") LiveData<List<FailedProj_select>> getFailedProjects(); + /** + * 鑾峰彇澶辫触椤圭洰鏉℃暟 + * @param subject_id + * @return + */ @Query("SELECT COUNT(*) from fail_projects where subject=:subject_id") LiveData<Integer> getSubject(int subject_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 1f879e2..c50f7c2 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 @@ -18,22 +18,27 @@ * All Rights Saved! Chongqing AnYun Tech co. LTD */ @Entity(tableName = "fail_projects",foreignKeys = @ForeignKey(entity = CriteriaForI.class, -parentColumns = "item_id",childColumns = "emp_id",onDelete = CASCADE),indices=@Index(value="emp_id")) +parentColumns = "item_id",childColumns = "emp_id")) public class FailedProj { @PrimaryKey(autoGenerate = true) private int id; + + @ColumnInfo(name = "subject") private int subject; + //浣滀负澶栭敭锛屽搴擨绫昏�冨満鐨刬tem_id @ColumnInfo(name = "emp_id") - private int emp_id;//浣滀负澶栭敭锛屽搴擨绫昏�冨満鐨刬tem_id + private int emp_id; public FailedProj(int subject, int emp_id) { this.subject = subject; this.emp_id = emp_id; } + + public int getId() { return id; } 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 new file mode 100644 index 0000000..d8db12f --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjRepository.java @@ -0,0 +1,41 @@ +package safeluck.drive.evaluation.DB.failitems; + +import android.app.Application; + +import androidx.lifecycle.LiveData; + +import java.util.List; + +import safeluck.drive.evaluation.DB.WorkRoomDataBase; + +/** + * MyApplication2 + * Created by lzw on 2019/11/27. 10:43:21 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +public class FailedProjRepository { + + + private FailProjDao failProjDao; + + public FailedProjRepository(Application application) { + WorkRoomDataBase dataBase = WorkRoomDataBase.getWorkRoomDataBase(application); + failProjDao = dataBase.getFailProjDao(); + } + + + public void insert(final FailedProj proj){ + WorkRoomDataBase.dataBaseWriteExecutor.execute(new Runnable() { + @Override + public void run() { + + failProjDao.insert(proj); + } + }); + } + + public LiveData<List<FailedProj_select>> getFailedProjects() { + return failProjDao.getFailedProjects(); + } +} 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 new file mode 100644 index 0000000..ccfad7e --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjViewModel.java @@ -0,0 +1,32 @@ +package safeluck.drive.evaluation.DB.failitems; + +import android.app.Application; + +import androidx.annotation.NonNull; +import androidx.lifecycle.AndroidViewModel; +import androidx.lifecycle.LiveData; + +import java.util.List; + +/** + * MyApplication2 + * Created by lzw on 2019/11/27. 10:42:32 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +public class FailedProjViewModel extends AndroidViewModel { + + FailedProjRepository failedProjRepository; + + public FailedProjViewModel(@NonNull Application application) { + super(application); + failedProjRepository = new FailedProjRepository(application); + } + + public LiveData<List<FailedProj_select>> getFailedProjects(){ + return failedProjRepository.getFailedProjects(); + } + public void insert(FailedProj proj){ + failedProjRepository.insert(proj); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java index 228f00a..7cb7394 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProjWorker.java @@ -6,6 +6,8 @@ import androidx.work.Worker; import androidx.work.WorkerParameters; +import com.anyun.exam.lib.MyLog; + import safeluck.drive.evaluation.DB.WorkRoomDataBase; /** @@ -16,6 +18,9 @@ */ public class FailedProjWorker extends Worker { + + private static final String TAG= "FailedProjWorker"; + public FailedProjWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { super(context, workerParams); } @@ -23,6 +28,7 @@ @NonNull @Override public Result doWork() { + MyLog.i(TAG,"棰勭疆涓�鏉″け璐ラ」鐩�"); WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getFailProjDao().insert(new FailedProj(1,5)); return Result.success(); } 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 d73972c..bc62ea2 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 @@ -1,5 +1,7 @@ package safeluck.drive.evaluation.DB.failitems; +import androidx.room.ColumnInfo; + /** * MyApplication2 * Created by lzw on 2019/11/26. 18:22:03 @@ -8,6 +10,7 @@ */ public class FailedProj_select { + @ColumnInfo(name = "emp_id") private int emp_id; private String item_content; private String deducting_reason; diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java index 44d6f9f..99e3c85 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java @@ -20,6 +20,7 @@ import com.google.android.material.textfield.TextInputEditText; import java.util.List; +import java.util.Random; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.DB.Student; @@ -91,7 +92,7 @@ @Override public void run() { - WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getFailProjDao().insert(new FailedProj(1,4)); + WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getFailProjDao().insert(new FailedProj(1, new Random(30).nextInt()+1)); } }); 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 37eb8f0..64a17cf 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java @@ -21,6 +21,7 @@ import safeluck.drive.evaluation.DB.Student; import safeluck.drive.evaluation.DB.WokViewModel; import safeluck.drive.evaluation.DB.WorkRoomDataBase; +import safeluck.drive.evaluation.DB.failitems.FailedProjViewModel; import safeluck.drive.evaluation.DB.failitems.FailedProj_select; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.ScoreAdapter; @@ -49,7 +50,7 @@ @Nullable @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.layout_train_fragment,container,false); initView(view); @@ -65,25 +66,19 @@ }); - WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getFailProjDao().getSubject(1).observe(this, new Observer<Integer>() { + FailedProjViewModel failedProjViewModel =ViewModelProviders.of(this).get(FailedProjViewModel.class); + failedProjViewModel.getFailedProjects().observe(this, new Observer<List<FailedProj_select>>() { @Override - public void onChanged(Integer integers) { + public void onChanged(List<FailedProj_select> failedProj_selects) { item_id = 0; - WorkRoomDataBase.getWorkRoomDataBase(getContext().getApplicationContext()).getFailProjDao().getFailedProjects().observe(TrainFragment.this, new Observer<List<FailedProj_select>>() { - @Override - public void onChanged(List<FailedProj_select> failedProj_selects) { - for (FailedProj_select f : - failedProj_selects) { - item_id += f.getScore_deducting(); - Log.i(TAG, "onChanged: "+f.toString()); - Toast.makeText(getActivity().getApplicationContext(),"寰楀垎"+item_id,Toast.LENGTH_SHORT).show(); - } - } - }); - + for (FailedProj_select f : + failedProj_selects) { + item_id += f.getScore_deducting(); + Log.i(TAG, "onChanged: "+f.toString()); + Toast.makeText(getActivity().getApplicationContext(),"寰楀垎"+item_id,Toast.LENGTH_SHORT).show(); + } } }); - Log.i(TAG, "鎬绘墸鍒嗭細"+item_id); return view; } -- Gitblit v1.8.0