diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
index 44e9aea..e90f80e 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.search
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -15,6 +18,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
@@ -26,6 +30,7 @@
class SearchStandardDeviceResultActivity : KotlinBaseActivity() {
+ private val context: Context = this@SearchStandardDeviceResultActivity
private lateinit var param: String
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
@@ -169,6 +174,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -176,7 +191,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
index 44e9aea..e90f80e 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.search
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -15,6 +18,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
@@ -26,6 +30,7 @@
class SearchStandardDeviceResultActivity : KotlinBaseActivity() {
+ private val context: Context = this@SearchStandardDeviceResultActivity
private lateinit var param: String
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
@@ -169,6 +174,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -176,7 +191,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/res/layout/activity_change_password.xml b/app/src/main/res/layout/activity_change_password.xml
new file mode 100644
index 0000000..6d8d42a
--- /dev/null
+++ b/app/src/main/res/layout/activity_change_password.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
index 44e9aea..e90f80e 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.search
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -15,6 +18,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
@@ -26,6 +30,7 @@
class SearchStandardDeviceResultActivity : KotlinBaseActivity() {
+ private val context: Context = this@SearchStandardDeviceResultActivity
private lateinit var param: String
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
@@ -169,6 +174,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -176,7 +191,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/res/layout/activity_change_password.xml b/app/src/main/res/layout/activity_change_password.xml
new file mode 100644
index 0000000..6d8d42a
--- /dev/null
+++ b/app/src/main/res/layout/activity_change_password.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_forget_password.xml b/app/src/main/res/layout/activity_forget_password.xml
deleted file mode 100644
index 6d8d42a..0000000
--- a/app/src/main/res/layout/activity_forget_password.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 17e74d2..4c7d981 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -23,14 +23,16 @@
targetSdkVersion 31
versionCode 1
versionName "1.0.0.0"
+
+ ndk {
+ abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86_64'
+ }
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-
- ndk { abiFilters "armeabi", "armeabi-v7a", "arm64-v8" }
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6f9aaab..2acc2f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,7 +42,7 @@
android:name=".view.BigImageActivity"
android:theme="@style/Theme.BigImageActivity" />
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
index 44e9aea..e90f80e 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.search
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -15,6 +18,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
@@ -26,6 +30,7 @@
class SearchStandardDeviceResultActivity : KotlinBaseActivity() {
+ private val context: Context = this@SearchStandardDeviceResultActivity
private lateinit var param: String
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
@@ -169,6 +174,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -176,7 +191,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/res/layout/activity_change_password.xml b/app/src/main/res/layout/activity_change_password.xml
new file mode 100644
index 0000000..6d8d42a
--- /dev/null
+++ b/app/src/main/res/layout/activity_change_password.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_forget_password.xml b/app/src/main/res/layout/activity_forget_password.xml
deleted file mode 100644
index 6d8d42a..0000000
--- a/app/src/main/res/layout/activity_forget_password.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 9279888..a54e140 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -56,35 +56,6 @@
android:textColorHint="@color/hintColor"
android:textSize="@dimen/sp_16" />
-
-
-
-
-
-
-
-
+
diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
new file mode 100644
index 0000000..617c554
--- /dev/null
+++ b/app/src/main/ic_launcher-playstore.png
Binary files differ
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
index 744e3a1..bc4b162 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt
@@ -150,16 +150,10 @@
return "$defaultValue/test/${this.replace("\\", "/")}"
}
-fun String.isEarlier(time: String): Boolean {
- val t1 = this.dateToTimestamp()
- val t2 = time.dateToTimestamp()
- return (t2 - t1) > 0
-}
-
-fun String.isLater(): Boolean {
+fun String.isEarlierThenCurrent(): Boolean {
val t1 = this.dateToTimestamp()
val t2 = System.currentTimeMillis()
- return (t2 - t1) > 0
+ return (t1 - t2) < 0
}
/**
@@ -186,6 +180,17 @@
return dateFormat.format(date)
}
+fun String.formatToYearMonthDay(): String {
+ if (this.isBlank()) {
+ return this
+ }
+ val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
+ val date = simpleDateFormat.parse(this)
+
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA)
+ return dateFormat.format(date)
+}
+
fun String.toChineseGrade(): String {
if (this.isBlank()) {
return "级别未知"
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
index 3a0fe2e..344fff7 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -28,7 +29,7 @@
projectCodeView.text = data.projectNo
constStdProjView.text = data.constructionStandardProject
// unitCodeView.text = data.modelNo
- preparationDateView.text = data.preparationDate
+ preparationDateView.text = data.preparationDate.formatToYearMonthDay()
categoryView.text = data.categoryName
standardLevelView.text = data.standardLevelName
transmitRangeView.text = data.transmitRangeName
@@ -40,7 +41,7 @@
metrologyView.text = data.measureMajorName
managerStateView.text = data.managerStateName
assessmentUnitView.text = data.assessmentUnit
- appraisalDateView.text = data.assessDate
+ appraisalDateView.text = data.assessDate.formatToYearMonthDay()
uncertaintyView.text = data.uncertainty
measureRangeView.text = data.mesureRange
stdTempView.text = data.standardTemperature
@@ -48,7 +49,7 @@
// certificateCodeView.text=data.
// issuanceUnitView.text=data.
// issuanceDateView.text=data.
-// effectiveDateView.text=data.
+ effectiveDateView.text = data.validTime.formatToYearMonthDay()
if (data.fileList.size == 0) {
documentsView.text = "暂无"
} else {
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
index f42d017..51b3375 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/MeasurementStaffFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.StaffListModel
import com.casic.xz.meterage.vm.MeterageTrainViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_measurement_staff.*
class MeasurementStaffFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +37,26 @@
item.deptName
}
+ if (item.certificateDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(R.id.nameTagView, item.name.last().toString())
.setText(R.id.userNameView, item.name)
.setText(R.id.useDeptView, useDept)
.setText(R.id.certificateView, "证书编号:${item.verifierCertificateNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.certificateDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.certificateDate.formatToYearMonthDay()}"
+ )
}
}
staffRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
index aa45f3d..a7c42b5 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/SupportEquipmentFragment.kt
@@ -3,11 +3,14 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.model.SupportEquipmentListModel
import com.casic.xz.meterage.vm.EquipmentViewModel
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_device_support_equipment.*
class SupportEquipmentFragment(private val id: String) : KotlinBaseFragment() {
@@ -28,12 +31,28 @@
position: Int,
item: SupportEquipmentListModel.DataModel.RowsModel
) {
+
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.red.convertColor(requireContext())
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.expirationDateView,
+ R.color.gray.convertColor(requireContext())
+ )
+ }
+
viewHolder.setText(
R.id.nameTagView, item.equipmentName.last().toString()
).setText(R.id.deviceNameView, item.equipmentName)
.setText(R.id.modelView, item.modelNo)
.setText(R.id.deviceCodeView, "设备编号:${item.equipmentNo}")
- .setText(R.id.expirationDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.expirationDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
}
}
supportRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
index 376455b..573abd9 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/device/VerifyRegulationFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.base.KotlinBaseFragment
import kotlinx.android.synthetic.main.fragment_device_verify_regulation.*
+//TODO 缺少UI设计
class VerifyRegulationFragment(private val id: String) : KotlinBaseFragment() {
private lateinit var verifyViewModel: VerifyViewModel
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
index 365140a..0c5211d 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -6,6 +6,7 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.adapter.CertificateTypeAdapter
import com.casic.xz.meterage.adapter.CustomerSampleAdapter
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.EntrustDetailModel
import com.casic.xz.meterage.vm.ConfigViewModel
@@ -21,9 +22,9 @@
entrustCodeView.text = data.orderCode
senderView.text = data.deliverer
contactView.text = data.delivererTel
- entrustCreateView.text = data.orderTime
- estimateTimeView.text = data.planDeliverTime
- completedView.text = data.requireOverTime
+ entrustCreateView.text = data.orderTime.formatToYearMonthDay()
+ estimateTimeView.text = data.planDeliverTime.formatToYearMonthDay()
+ completedView.text = data.requireOverTime.formatToYearMonthDay()
entrustNameView.text = data.customerName
entrustContactView.text = data.customerPhone
entrustAddressView.text = data.customerAddress
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
index 7bc3b01..f71db9e 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/BasicInformationFragment.kt
@@ -4,6 +4,7 @@
import android.graphics.Paint
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.utils.LoadingDialogHub
import com.casic.xz.meterage.vm.EquipmentViewModel
@@ -31,7 +32,7 @@
verificationMethodView.text = data.mesureTypeName
measuringRangeView.text = data.mesureRange
uncertaintyView.text = data.uncertainty
- firstUseView.text = data.createTime
+ firstUseView.text = data.createTime.formatToYearMonthDay()
originalValueView.text = data.originValue
usageDeptView.text = data.useDeptName
userView.text = data.usePersonName
@@ -39,8 +40,8 @@
verificationDeptView.text = data.useDeptName
// nextVerificationDeptView.text = data.
verificationPeriodView.text = data.mesureCycle
- verificationDateView.text = data.mesureDate
- effectiveDateView.text = data.validDate
+ verificationDateView.text = data.mesureDate.formatToYearMonthDay()
+ effectiveDateView.text = data.validDate.formatToYearMonthDay()
verificationResultsView.text = data.mesureResultName
abcView.text = data.abcName
isNeedTechnicalView.text = if (
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
index e72ca2b..56ba98b 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/equipment/StateChangeLogFragment.kt
@@ -8,6 +8,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
import kotlinx.android.synthetic.main.fragment_equipment_state_change_log.*
class StateChangeLogFragment(private val id: String) : KotlinBaseFragment() {
@@ -34,11 +35,16 @@
item.applyPersonName
}
- viewHolder.setText(
- R.id.nameTagView, name.last().toString()
- ).setText(R.id.userNameView, name)
+ if (!item.managerStateName.contains("在用")) {
+ viewHolder.setBackgroundColor(
+ R.id.stateView, R.color.gray.convertColor(requireContext())
+ )
+ }
+
+ viewHolder.setText(R.id.nameTagView, name.last().toString())
+ .setText(R.id.userNameView, name)
.setText(R.id.dateView, "时间:${item.startDate} ~ ${item.endDate}")
- .setText(R.id.stateView, "状态:${item.managerStateName}")
+ .setText(R.id.stateView, item.managerStateName)
}
}
stateLogRecyclerView.addItemDecoration(
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
index 8190fd7..a1c00df 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/file/StandardFileFragment.kt
@@ -4,6 +4,7 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardFileModel
import com.casic.xz.meterage.view.home.StandardFileDetailActivity
@@ -144,7 +145,10 @@
.setText(R.id.fileStateView, item.effectiveStatusName)
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.fileCodeView, "文件号:${item.fileNo}")
- .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+ .setText(
+ R.id.releaseDateView,
+ "实施时间:${item.publishTime.formatToYearMonthDay()}"
+ )
if (!item.effectiveStatus.equals("1")) {
viewHolder.setBackgroundColor(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
new file mode 100644
index 0000000..739167e
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/ChangePasswordActivity.kt
@@ -0,0 +1,99 @@
+package com.casic.xz.meterage.view
+
+import android.content.Intent
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.AuthenticationHelper
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.utils.RSAUtils
+import com.casic.xz.meterage.vm.UserViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_change_password.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import java.nio.charset.StandardCharsets
+
+class ChangePasswordActivity : KotlinBaseActivity() {
+
+ private lateinit var userViewModel: UserViewModel
+ private lateinit var newPassword: String
+
+ override fun initData() {
+ userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
+ userViewModel.changePwdResult.observe(this) {
+ if (it.code == 200) {
+ val intent = Intent()
+ intent.putExtra("newPassword", newPassword)
+ setResult(RESULT_OK, intent)
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ submitButton.setOnClickListener {
+ /**
+ * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
+ * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
+ * */
+ val oldPassword: String = oldPasswordView.text.toString().trim()
+ if (oldPassword.isBlank()) {
+ "请先输入原密码".show(this)
+ return@setOnClickListener
+ }
+ val newPassword: String = newPasswordView.text.toString().trim()
+ if (newPassword.isBlank()) {
+ "请输入新密码".show(this)
+ return@setOnClickListener
+ }
+ val repeatPassword: String = repeatPasswordView.text.toString().trim()
+ if (repeatPassword.isBlank()) {
+ "请再次输入新密码".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword != repeatPassword) {
+ "新密码和确认密码输入不一致,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ if (newPassword.length < 6 || newPassword.length > 16) {
+ "新密码长度不正确,请重新输入".show(this)
+ return@setOnClickListener
+ }
+ this.newPassword = newPassword
+
+ //数据校验OK,可以修改密码
+ val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
+ val oldPassKey = RSAUtils.encryptDataByPublicKey(
+ oldPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ val newPassKey = RSAUtils.encryptDataByPublicKey(
+ newPassword.toByteArray(StandardCharsets.UTF_8),
+ publicKey
+ )
+ userViewModel.changePassword(oldPassKey, newPassKey)
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_change_password
+
+ override fun observeRequestState() {
+ userViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "修改密码"
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
deleted file mode 100644
index f68a025..0000000
--- a/app/src/main/java/com/casic/xz/meterage/view/ForgetPasswordActivity.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.casic.xz.meterage.view
-
-import android.content.Intent
-import androidx.lifecycle.ViewModelProvider
-import com.casic.xz.meterage.R
-import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.utils.AuthenticationHelper
-import com.casic.xz.meterage.utils.LoadingDialogHub
-import com.casic.xz.meterage.utils.RSAUtils
-import com.casic.xz.meterage.vm.UserViewModel
-import com.gyf.immersionbar.ImmersionBar
-import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.show
-import com.pengxh.kt.lite.vm.LoadState
-import kotlinx.android.synthetic.main.activity_forget_password.*
-import kotlinx.android.synthetic.main.include_base_title.*
-import java.nio.charset.StandardCharsets
-
-class ForgetPasswordActivity : KotlinBaseActivity() {
-
- private lateinit var userViewModel: UserViewModel
- private lateinit var newPassword: String
-
- override fun initData() {
- userViewModel = ViewModelProvider(this)[UserViewModel::class.java]
- userViewModel.changePwdResult.observe(this) {
- if (it.code == 200) {
- val intent = Intent()
- intent.putExtra("newPassword", newPassword)
- setResult(RESULT_OK, intent)
- finish()
- }
- }
- }
-
- override fun initEvent() {
- leftBackView.setOnClickListener { finish() }
-
- submitButton.setOnClickListener {
- /**
- * isEmpty 认为空格(无论单空格还是多空格)都是不是空.
- * isBlank 认为空格,换行符号(\n),tab(\t)都是空.
- * */
- val oldPassword: String = oldPasswordView.text.toString().trim()
- if (oldPassword.isBlank()) {
- "请先输入原密码".show(this)
- return@setOnClickListener
- }
- val newPassword: String = newPasswordView.text.toString().trim()
- if (newPassword.isBlank()) {
- "请输入新密码".show(this)
- return@setOnClickListener
- }
- val repeatPassword: String = repeatPasswordView.text.toString().trim()
- if (repeatPassword.isBlank()) {
- "请再次输入新密码".show(this)
- return@setOnClickListener
- }
- if (newPassword != repeatPassword) {
- "新密码和确认密码输入不一致,请重新输入".show(this)
- return@setOnClickListener
- }
- if (newPassword.length < 6 || newPassword.length > 16) {
- "新密码长度不正确,请重新输入".show(this)
- return@setOnClickListener
- }
- this.newPassword = newPassword
-
- //数据校验OK,可以修改密码
- val publicKey = RSAUtils.keyStrToPublicKey(AuthenticationHelper.publicKey)!!
- val oldPassKey = RSAUtils.encryptDataByPublicKey(
- oldPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- val newPassKey = RSAUtils.encryptDataByPublicKey(
- newPassword.toByteArray(StandardCharsets.UTF_8),
- publicKey
- )
- userViewModel.changePassword(oldPwd = oldPassKey, newPwd = newPassKey)
- }
- }
-
- override fun initLayoutView(): Int = R.layout.activity_forget_password
-
- override fun observeRequestState() {
- userViewModel.loadState.observe(this) {
- when (it) {
- LoadState.Loading -> LoadingDialogHub.show(this, "修改中,请稍后")
- else -> LoadingDialogHub.dismiss()
- }
- }
- }
-
- override fun setupTopBarLayout() {
- ImmersionBar.with(this).statusBarDarkFont(true).init()
- initLayoutImmersionBar(rootView)
- titleView.text = "修改密码"
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
index f26d40e..f602804 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/LoginActivity.kt
@@ -1,7 +1,6 @@
package com.casic.xz.meterage.view
import android.app.Activity
-import android.content.Intent
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultCallback
import androidx.activity.result.contract.ActivityResultContracts
@@ -51,9 +50,9 @@
})
override fun initEvent() {
- forgetPasswordView.setOnClickListener {
- changePwdLauncher.launch(Intent(this, ForgetPasswordActivity::class.java))
- }
+// forgetPasswordView.setOnClickListener {
+// changePwdLauncher.launch(Intent(this, ChangePasswordActivity::class.java))
+// }
loginButton.setOnClickListener {
val userPhone = userPhoneView.text.toString()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
index b4a44b8..1592f3c 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt
@@ -20,6 +20,7 @@
import com.pengxh.kt.lite.vm.LoadState
import kotlinx.android.synthetic.main.activity_certificate_detail.*
+//TODO 查看详情会闪退
class CertificateReportDetailActivity : KotlinBaseActivity() {
private var fragmentPages: ArrayList = ArrayList()
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
index f90402b..3b8b4a3 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -168,7 +169,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
index cb474ff..6f9cf71 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EquipmentActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -175,13 +177,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index e888afb..c47a471 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -6,9 +6,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -145,25 +145,28 @@
position: Int,
item: MeterageTrainListModel.DataModel.RowsModel
) {
- //根据创建时间和计划培训时间判断培训状态
+ //根据计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
index 44e1ad8..9366445 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardDeviceActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.home
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
@@ -14,6 +17,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -24,6 +28,7 @@
class StandardDeviceActivity : KotlinBaseActivity() {
+ private val context: Context = this@StandardDeviceActivity
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
private lateinit var deviceAdapter: NormalRecyclerAdapter
@@ -152,6 +157,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -159,7 +174,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
index bafb243..90f10d8 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/StandardFileDetailActivity.kt
@@ -3,6 +3,7 @@
import android.graphics.Color
import android.graphics.Paint
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.watchAttachFile
import com.casic.xz.meterage.model.StandardFileModel
@@ -28,9 +29,9 @@
fileNumberView.text = dataRow.fileNo
categoryView.text = dataRow.fileTypeName
publisherView.text = dataRow.publisher
- implementTimeView.text = dataRow.effectiveTime
+ implementTimeView.text = dataRow.effectiveTime.formatToYearMonthDay()
implementStateView.text = dataRow.effectiveStatusName
- createTimeView.text = dataRow.publishTime
+ createTimeView.text = dataRow.publishTime.formatToYearMonthDay()
remarkView.text = dataRow.remark
if (dataRow.minioFileName.isNullOrBlank()) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 0b1abb1..470a6a6 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
@@ -4,6 +4,7 @@
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
@@ -174,7 +175,10 @@
.setText(R.id.customerPhoneView, item.customerPhone)
.setText(R.id.sampleCountView, item.sampleCount)
.setText(R.id.remarkView, remark)
- .setText(R.id.entrustDateView, "委托时间:${item.orderTime}")
+ .setText(
+ R.id.entrustDateView,
+ "委托时间:${item.orderTime.formatToYearMonthDay()}"
+ )
.setText(R.id.entrustCodeView, "委托编号:${item.orderCode}")
if (item.isUrgent == "0") {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
index 3d01b59..d103c45 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEquipmentResultActivity.kt
@@ -5,7 +5,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EquipmentListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -184,13 +186,26 @@
item.usePersonName
}
+ if (item.validDate.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.equipmentName, item.equipmentName)
.setText(R.id.modelView, modelNo)
.setText(R.id.equipmentStateView, item.managerStateName)
.setText(R.id.equipmentCodeView, "装置编号:${item.equipmentNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.useDeptView, useDept)
- .setText(R.id.deviceDateView, "有效期至:${item.validDate}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validDate.formatToYearMonthDay()}"
+ )
.setText(R.id.usePersonView, "管理员:$usePerson")
if (!item.managerStateName.contains("在用")) {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
index 332865d..de5aa99 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchMeterageTrainResultActivity.kt
@@ -7,9 +7,9 @@
import androidx.lifecycle.ViewModelProvider
import cn.bertsir.zbar.utils.QRUtils
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.diffCurrentTime
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
-import com.casic.xz.meterage.extensions.isEarlier
-import com.casic.xz.meterage.extensions.isLater
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.MeterageTrainListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -173,23 +173,26 @@
) {
//根据创建时间和计划培训时间判断培训状态
when {
- item.createTime.isEarlier(item.trainTime) -> {
- viewHolder.setText(R.id.trainStateView, "未进行")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, Color.BLUE
- )
- }
- item.trainTime.isLater() -> {
+ item.trainTime.isEarlierThenCurrent() -> {
viewHolder.setText(R.id.trainStateView, "已结束")
viewHolder.setBackgroundColor(
R.id.trainStateView, Color.GRAY
)
}
else -> {
- viewHolder.setText(R.id.trainStateView, "培训中")
- viewHolder.setBackgroundColor(
- R.id.trainStateView, R.color.green.convertColor(context)
- )
+ val deltaT = item.trainTime.diffCurrentTime()
+ if (deltaT <= 1) {
+ viewHolder.setText(R.id.trainStateView, "培训中")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView,
+ R.color.green.convertColor(context)
+ )
+ } else {
+ viewHolder.setText(R.id.trainStateView, "未开始")
+ viewHolder.setBackgroundColor(
+ R.id.trainStateView, Color.BLUE
+ )
+ }
}
}
viewHolder.setText(R.id.trainTitleView, item.planName)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
index 44e9aea..e90f80e 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchStandardDeviceResultActivity.kt
@@ -1,10 +1,13 @@
package com.casic.xz.meterage.view.search
+import android.content.Context
import android.os.Handler
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DividerItemDecoration
import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.isEarlierThenCurrent
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.StandardDeviceListModel
import com.casic.xz.meterage.utils.AppMemoryCache
@@ -15,6 +18,7 @@
import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
import com.pengxh.kt.lite.adapter.ViewHolder
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.Constant
@@ -26,6 +30,7 @@
class SearchStandardDeviceResultActivity : KotlinBaseActivity() {
+ private val context: Context = this@SearchStandardDeviceResultActivity
private lateinit var param: String
private lateinit var weakReferenceHandler: WeakReferenceHandler
private lateinit var equipmentViewModel: EquipmentViewModel
@@ -169,6 +174,16 @@
item.standardLaboratoryName
}
+ if (item.validTime.isEarlierThenCurrent()) {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.red.convertColor(context)
+ )
+ } else {
+ viewHolder.setTextColor(
+ R.id.deviceDateView, R.color.gray.convertColor(context)
+ )
+ }
+
viewHolder.setText(R.id.deviceNameView, item.standardName)
.setText(R.id.deviceStateView, item.managerStateName)
.setText(R.id.transmitRangeView, transmitRange)
@@ -176,7 +191,10 @@
.setText(R.id.deviceCodeView, "装置编号:${item.standardNo}")
.setText(R.id.remarkView, "备注:$remark")
.setText(R.id.deviceLibView, lab)
- .setText(R.id.deviceDateView, "有效期至:${item.validTime}")
+ .setText(
+ R.id.deviceDateView,
+ "有效期至:${item.validTime.formatToYearMonthDay()}"
+ )
.setText(R.id.labOwnerView, "管理员:${item.laboratoryOwnerName}")
}
}
diff --git a/app/src/main/res/layout/activity_change_password.xml b/app/src/main/res/layout/activity_change_password.xml
new file mode 100644
index 0000000..6d8d42a
--- /dev/null
+++ b/app/src/main/res/layout/activity_change_password.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_forget_password.xml b/app/src/main/res/layout/activity_forget_password.xml
deleted file mode 100644
index 6d8d42a..0000000
--- a/app/src/main/res/layout/activity_forget_password.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 9279888..a54e140 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -56,35 +56,6 @@
android:textColorHint="@color/hintColor"
android:textSize="@dimen/sp_16" />
-
-
-
-
-
-
-