Browse Source

1.添加测评module

王鹏鹏 2 years ago
parent
commit
dfb244c345

+ 148 - 2
baselib/schemas/com.yingyangfly.baselib.db.AppDataBase/1.json

@@ -2,7 +2,7 @@
   "formatVersion": 1,
   "database": {
     "version": 1,
-    "identityHash": "a8e4dc429cedceb34dc39bb5c7e4ee60",
+    "identityHash": "b2620b81b04688d04836e314ac142014",
     "entities": [
       {
         "tableName": "Questions",
@@ -371,12 +371,158 @@
         },
         "indices": [],
         "foreignKeys": []
+      },
+      {
+        "tableName": "Examination",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`examinationRecordId` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `id` TEXT, `createBy` TEXT, `createTime` TEXT, `described` TEXT, `examType` TEXT, `examinationCount` TEXT, `examinationScore` TEXT, `limit` TEXT, `orgCode` TEXT, `orgName` TEXT, `page` TEXT, `status` TEXT, `updateBy` TEXT, `updateTime` TEXT, `title` TEXT, `correctOptionId` TEXT, `questionOptionName` TEXT, `examinationId` TEXT, `examinationTitle` TEXT, `score` TEXT, `usedTime` TEXT)",
+        "fields": [
+          {
+            "fieldPath": "examinationRecordId",
+            "columnName": "examinationRecordId",
+            "affinity": "INTEGER",
+            "notNull": true
+          },
+          {
+            "fieldPath": "id",
+            "columnName": "id",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "createBy",
+            "columnName": "createBy",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "createTime",
+            "columnName": "createTime",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "described",
+            "columnName": "described",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "examType",
+            "columnName": "examType",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "examinationCount",
+            "columnName": "examinationCount",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "examinationScore",
+            "columnName": "examinationScore",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "limit",
+            "columnName": "limit",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "orgCode",
+            "columnName": "orgCode",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "orgName",
+            "columnName": "orgName",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "page",
+            "columnName": "page",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "status",
+            "columnName": "status",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "updateBy",
+            "columnName": "updateBy",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "updateTime",
+            "columnName": "updateTime",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "title",
+            "columnName": "title",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "correctOptionId",
+            "columnName": "correctOptionId",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "questionOptionName",
+            "columnName": "questionOptionName",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "examinationId",
+            "columnName": "examinationId",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "examinationTitle",
+            "columnName": "examinationTitle",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "score",
+            "columnName": "score",
+            "affinity": "TEXT",
+            "notNull": false
+          },
+          {
+            "fieldPath": "usedTime",
+            "columnName": "usedTime",
+            "affinity": "TEXT",
+            "notNull": false
+          }
+        ],
+        "primaryKey": {
+          "columnNames": [
+            "examinationRecordId"
+          ],
+          "autoGenerate": true
+        },
+        "indices": [],
+        "foreignKeys": []
       }
     ],
     "views": [],
     "setupQueries": [
       "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
-      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'a8e4dc429cedceb34dc39bb5c7e4ee60')"
+      "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b2620b81b04688d04836e314ac142014')"
     ]
   }
 }

+ 5 - 6
baselib/src/main/java/com/yingyangfly/baselib/db/AppDataBase.kt

@@ -6,7 +6,7 @@ import androidx.room.Room
 import androidx.room.RoomDatabase
 
 @Database(
-    entities = [QuestionsBean::class, DoctorBean::class, VoicePlayerBean::class, GameSoundBean::class],
+    entities = [QuestionsBean::class, DoctorBean::class, VoicePlayerBean::class, GameSoundBean::class, ExaminationRecord::class],
     version = 1
 )
 abstract class AppDataBase : RoomDatabase() {
@@ -19,6 +19,8 @@ abstract class AppDataBase : RoomDatabase() {
 
     abstract fun getGameSoundDao(): GameSoundDao
 
+    abstract fun getExaminationRecordDao(): ExaminationRecordDao
+
     companion object {
         @Volatile
         private var sInstance: AppDataBase? = null
@@ -38,11 +40,8 @@ abstract class AppDataBase : RoomDatabase() {
 
         private fun createInstance(context: Context): AppDataBase {
             return Room.databaseBuilder(
-                context,
-                AppDataBase::class.java,
-                DATA_BASE_NAME
-            ).allowMainThreadQueries()
-                .build()
+                context, AppDataBase::class.java, DATA_BASE_NAME
+            ).allowMainThreadQueries().build()
         }
     }
 

+ 307 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/ExaminationRecord.java

@@ -0,0 +1,307 @@
+package com.yingyangfly.baselib.db;
+
+import android.text.TextUtils;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+import com.alibaba.fastjson.annotation.JSONField;
+
+/**
+ * @author 王鹏鹏
+ */
+@Entity(tableName = "Examination")
+public class ExaminationRecord {
+
+    @JSONField(serialize = false)
+    @PrimaryKey(autoGenerate = true)
+    private int examinationRecordId;
+
+    @JSONField(serialize = false)
+    private String createBy;
+
+    @JSONField(serialize = false)
+    private String createTime;
+
+    @JSONField(serialize = false)
+    private String described;
+
+    @JSONField(serialize = false)
+    private String examType;
+
+    @JSONField(serialize = false)
+    private String examinationCount;
+
+    @JSONField(serialize = false)
+    private String examinationScore;
+
+    @JSONField(serialize = false)
+    private String limit;
+
+    @JSONField(serialize = false)
+    private String orgCode;
+
+    @JSONField(serialize = false)
+    private String orgName;
+
+    @JSONField(serialize = false)
+    private String page;
+
+    @JSONField(serialize = false)
+    private String status;
+
+    @JSONField(serialize = false)
+    private String updateBy;
+
+    @JSONField(serialize = false)
+    private String updateTime;
+
+    private String id;
+    private String title;
+    private String correctOptionId;
+    private String questionOptionName;
+    private String examinationId;
+    private String examinationTitle;
+    private String score;
+    private String usedTime;
+
+
+    public int getExaminationRecordId() {
+        return examinationRecordId;
+    }
+
+    public void setExaminationRecordId(int examinationRecordId) {
+        this.examinationRecordId = examinationRecordId;
+    }
+
+    public String getId() {
+        if (TextUtils.isEmpty(id)) {
+            return "";
+        }
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCreateBy() {
+        if (TextUtils.isEmpty(createBy)) {
+            return "";
+        }
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public String getCreateTime() {
+        if (TextUtils.isEmpty(createTime)) {
+            return "";
+        }
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getDescribed() {
+        if (TextUtils.isEmpty(described)) {
+            return "";
+        }
+        return described;
+    }
+
+    public void setDescribed(String described) {
+        this.described = described;
+    }
+
+    public String getExamType() {
+        if (TextUtils.isEmpty(examType)) {
+            return "";
+        }
+        return examType;
+    }
+
+    public void setExamType(String examType) {
+        this.examType = examType;
+    }
+
+    public String getExaminationCount() {
+        if (TextUtils.isEmpty(examinationCount)) {
+            return "";
+        }
+        return examinationCount;
+    }
+
+    public void setExaminationCount(String examinationCount) {
+        this.examinationCount = examinationCount;
+    }
+
+    public String getExaminationScore() {
+        if (TextUtils.isEmpty(examinationScore)) {
+            return "";
+        }
+        return examinationScore;
+    }
+
+    public void setExaminationScore(String examinationScore) {
+        this.examinationScore = examinationScore;
+    }
+
+    public String getLimit() {
+        if (TextUtils.isEmpty(limit)) {
+            return "";
+        }
+        return limit;
+    }
+
+    public void setLimit(String limit) {
+        this.limit = limit;
+    }
+
+    public String getOrgCode() {
+        if (TextUtils.isEmpty(orgCode)) {
+            return "";
+        }
+        return orgCode;
+    }
+
+    public void setOrgCode(String orgCode) {
+        this.orgCode = orgCode;
+    }
+
+    public String getOrgName() {
+        if (TextUtils.isEmpty(orgName)) {
+            return "";
+        }
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public String getPage() {
+        if (TextUtils.isEmpty(page)) {
+            return "";
+        }
+        return page;
+    }
+
+    public void setPage(String page) {
+        this.page = page;
+    }
+
+    public String getStatus() {
+        if (TextUtils.isEmpty(status)) {
+            return "";
+        }
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getTitle() {
+        if (TextUtils.isEmpty(title)) {
+            return "";
+        }
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getUpdateBy() {
+        if (TextUtils.isEmpty(updateBy)) {
+            return "";
+        }
+        return updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public String getUpdateTime() {
+        if (TextUtils.isEmpty(updateTime)) {
+            return "";
+        }
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getCorrectOptionId() {
+        if (TextUtils.isEmpty(correctOptionId)) {
+            return "";
+        }
+        return correctOptionId;
+    }
+
+    public void setCorrectOptionId(String correctOptionId) {
+        this.correctOptionId = correctOptionId;
+    }
+
+    public String getExaminationTitle() {
+        if (TextUtils.isEmpty(examinationTitle)) {
+            return "";
+        }
+        return examinationTitle;
+    }
+
+    public void setExaminationTitle(String examinationTitle) {
+        this.examinationTitle = examinationTitle;
+    }
+
+    public String getScore() {
+        if (TextUtils.isEmpty(score)) {
+            return "";
+        }
+        return score;
+    }
+
+    public void setScore(String score) {
+        this.score = score;
+    }
+
+    public String getUsedTime() {
+        if (TextUtils.isEmpty(usedTime)) {
+            return "";
+        }
+        return usedTime;
+    }
+
+    public void setUsedTime(String usedTime) {
+        this.usedTime = usedTime;
+    }
+
+    public String getQuestionOptionName() {
+        if (TextUtils.isEmpty(questionOptionName)) {
+            return "";
+        }
+        return questionOptionName;
+    }
+
+    public void setQuestionOptionName(String questionOptionName) {
+        this.questionOptionName = questionOptionName;
+    }
+
+    public String getExaminationId() {
+        if (TextUtils.isEmpty(examinationId)) {
+            return "";
+        }
+        return examinationId;
+    }
+
+    public void setExaminationId(String examinationId) {
+        this.examinationId = examinationId;
+    }
+}

+ 26 - 0
baselib/src/main/java/com/yingyangfly/baselib/db/ExaminationRecordDao.kt

@@ -0,0 +1,26 @@
+package com.yingyangfly.baselib.db
+
+import androidx.room.*
+
+@Dao
+interface ExaminationRecordDao : BaseDao<ExaminationRecord> {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insert(element: ExaminationRecord)
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    override fun insertAll(list: MutableList<ExaminationRecord>)
+
+    @Query("select * from Examination")
+    fun getAllExaminationRecordBean(): MutableList<ExaminationRecord>
+
+    @Query("select * from Examination where examinationRecordId = :id")
+    fun getExaminationRecordById(id: Int): ExaminationRecord
+
+    @Query("delete from Examination")
+    fun deleteAll()
+
+    @Update
+    override fun update(element: ExaminationRecord)
+
+}

+ 1 - 1
evaluation/src/main/java/com/yingyangfly/evaluation/adapter/ExaminationAdapter.kt

@@ -1,10 +1,10 @@
 package com.yingyangfly.evaluation.adapter
 
 import com.yingyangfly.baselib.adapter.BaseDataBindingAdapter
+import com.yingyangfly.baselib.db.ExaminationRecord
 import com.yingyangfly.baselib.ext.setOnSingleClickListener
 import com.yingyangfly.evaluation.R
 import com.yingyangfly.evaluation.databinding.ItemExaminationBinding
-import com.yingyangfly.evaluation.entity.ExaminationRecord
 
 /**
  * 试题库列表

+ 2 - 18
evaluation/src/main/java/com/yingyangfly/evaluation/entity/ExaminationListBean.kt

@@ -1,5 +1,7 @@
 package com.yingyangfly.evaluation.entity
 
+import com.yingyangfly.baselib.db.ExaminationRecord
+
 data class ExaminationListBean(
     val countId: Any,
     val current: Int,
@@ -10,22 +12,4 @@ data class ExaminationListBean(
     val searchCount: Boolean,
     val size: Int,
     val total: Int
-)
-
-data class ExaminationRecord(
-    val createBy: String,
-    val createTime: String,
-    val described: String,
-    val examType: String,
-    val examinationCount: String,
-    val examinationScore: String,
-    val id: String,
-    val limit: Int,
-    val orgCode: String,
-    val orgName: String,
-    val page: Int,
-    val status: String,
-    val title: String,
-    val updateBy: String,
-    val updateTime: String
 )

+ 1 - 1
evaluation/src/main/java/com/yingyangfly/evaluation/otherevaluation/OtherEvaluationActivity.kt

@@ -7,6 +7,7 @@ import android.view.View
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyangfly.baselib.db.ExaminationRecord
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
@@ -18,7 +19,6 @@ import com.yingyangfly.evaluation.adapter.EvaluationTypeAdapter
 import com.yingyangfly.evaluation.adapter.ExaminationAdapter
 import com.yingyangfly.evaluation.databinding.ActivityOtherEvaluationBinding
 import com.yingyangfly.evaluation.entity.EvaluationTypeBean
-import com.yingyangfly.evaluation.entity.ExaminationRecord
 
 /**
  * 其他测评功能页面

+ 1 - 1
evaluation/src/main/res/layout/activity_other_evaluation.xml

@@ -73,7 +73,7 @@
 
                 <com.google.android.material.card.MaterialCardView
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
+                    android:layout_height="0dp"
                     android:layout_marginStart="@dimen/divider_34px"
                     android:layout_marginTop="@dimen/divider_21px"
                     android:layout_marginEnd="@dimen/divider_37px"

+ 1 - 2
evaluation/src/main/res/layout/item_examination.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     tools:ignore="ResourceName">
 
@@ -8,7 +7,7 @@
 
         <variable
             name="data"
-            type="com.yingyangfly.evaluation.entity.ExaminationRecord" />
+            type="com.yingyangfly.baselib.db.ExaminationRecord" />
     </data>
 
     <LinearLayout