diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9a2ba70..f28bb00 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -501,6 +501,53 @@
}
/**
+ * 新增样品
+ */
+ suspend fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject["sampleName"] = sampleName
+ paramObject["sampleModel"] = model
+ paramObject["manufacturingNo"] = factoryNumber
+ paramObject["customerName"] = entrustName
+ paramObject["phone"] = entrustContact
+ paramObject["postalCode"] = emailCode
+ paramObject["customerAddress"] = entrustAddress
+ paramObject["measurePeriod"] = checkCycle
+ paramObject["manufacturer"] = manufacturer
+ paramObject["manufacturerCountry"] = country
+ paramObject["manufacturingDate"] = factoryDate
+ paramObject["abc"] = abc
+ paramObject["deliverer"] = sender
+ paramObject["delivererTel"] = senderContact
+ paramObject["measureContent"] = checkProject
+ paramObject["minioFileName"] = instructions
+ paramObject["remark"] = remark
+
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.writeSample(AuthenticationHelper.token!!, requestBody)
+ }
+
+ /**
* 新增委托书
*/
suspend fun addEntrust(
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9a2ba70..f28bb00 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -501,6 +501,53 @@
}
/**
+ * 新增样品
+ */
+ suspend fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject["sampleName"] = sampleName
+ paramObject["sampleModel"] = model
+ paramObject["manufacturingNo"] = factoryNumber
+ paramObject["customerName"] = entrustName
+ paramObject["phone"] = entrustContact
+ paramObject["postalCode"] = emailCode
+ paramObject["customerAddress"] = entrustAddress
+ paramObject["measurePeriod"] = checkCycle
+ paramObject["manufacturer"] = manufacturer
+ paramObject["manufacturerCountry"] = country
+ paramObject["manufacturingDate"] = factoryDate
+ paramObject["abc"] = abc
+ paramObject["deliverer"] = sender
+ paramObject["delivererTel"] = senderContact
+ paramObject["measureContent"] = checkProject
+ paramObject["minioFileName"] = instructions
+ paramObject["remark"] = remark
+
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.writeSample(AuthenticationHelper.token!!, requestBody)
+ }
+
+ /**
* 新增委托书
*/
suspend fun addEntrust(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
index 9c8d27b..d1815cc 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
@@ -24,6 +24,7 @@
import com.casic.xz.meterage.vm.DictionaryViewModel
import com.casic.xz.meterage.vm.EntrustViewModel
import com.casic.xz.meterage.vm.FileUploadViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.gyf.immersionbar.ImmersionBar
@@ -32,6 +33,7 @@
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -161,7 +163,7 @@
leftBackView.setOnClickListener { finish() }
estimateTimeView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
estimateTimeView.text = date
}
@@ -169,7 +171,7 @@
}
completedView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
completedView.text = date
}
@@ -210,7 +212,7 @@
//写入样品信息
writeSampleButton.setOnClickListener {
-
+ navigatePageTo()
}
pushEntrustView.setOnClickListener {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9a2ba70..f28bb00 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -501,6 +501,53 @@
}
/**
+ * 新增样品
+ */
+ suspend fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject["sampleName"] = sampleName
+ paramObject["sampleModel"] = model
+ paramObject["manufacturingNo"] = factoryNumber
+ paramObject["customerName"] = entrustName
+ paramObject["phone"] = entrustContact
+ paramObject["postalCode"] = emailCode
+ paramObject["customerAddress"] = entrustAddress
+ paramObject["measurePeriod"] = checkCycle
+ paramObject["manufacturer"] = manufacturer
+ paramObject["manufacturerCountry"] = country
+ paramObject["manufacturingDate"] = factoryDate
+ paramObject["abc"] = abc
+ paramObject["deliverer"] = sender
+ paramObject["delivererTel"] = senderContact
+ paramObject["measureContent"] = checkProject
+ paramObject["minioFileName"] = instructions
+ paramObject["remark"] = remark
+
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.writeSample(AuthenticationHelper.token!!, requestBody)
+ }
+
+ /**
* 新增委托书
*/
suspend fun addEntrust(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
index 9c8d27b..d1815cc 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
@@ -24,6 +24,7 @@
import com.casic.xz.meterage.vm.DictionaryViewModel
import com.casic.xz.meterage.vm.EntrustViewModel
import com.casic.xz.meterage.vm.FileUploadViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.gyf.immersionbar.ImmersionBar
@@ -32,6 +33,7 @@
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -161,7 +163,7 @@
leftBackView.setOnClickListener { finish() }
estimateTimeView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
estimateTimeView.text = date
}
@@ -169,7 +171,7 @@
}
completedView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
completedView.text = date
}
@@ -210,7 +212,7 @@
//写入样品信息
writeSampleButton.setOnClickListener {
-
+ navigatePageTo()
}
pushEntrustView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
new file mode 100644
index 0000000..bd0d663
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
@@ -0,0 +1,188 @@
+package com.casic.xz.meterage.view.home
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.callback.DateSelectedCallback
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.SampleViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
+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 com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_write_sample.*
+
+class WriteSampleActivity : KotlinBaseActivity() {
+
+ private val items = arrayListOf("A", "B", "C")
+ private lateinit var sampleViewModel: SampleViewModel
+
+ override fun initData() {
+ sampleViewModel = ViewModelProvider(this)[SampleViewModel::class.java]
+ sampleViewModel.writeResult.observe(this) {
+ if (it.code == 200) {
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ countryView.setOnClickListener {
+
+ }
+
+ factoryDateView.setOnClickListener {
+ showDatePicker(DateEntity.target(1949, 10, 1), object : DateSelectedCallback {
+ override fun onDateSelected(date: String) {
+ factoryDateView.text = date
+ }
+ })
+ }
+
+ abcView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(items)
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object :
+ BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ abcView.text = items[position]
+ }
+ }).build().show()
+ }
+
+ pushSampleView.setOnClickListener {
+ val sampleName = sampleNameView.text.toString()
+ if (sampleName.isBlank()) {
+ "请输入样品名称".show(this)
+ return@setOnClickListener
+ }
+
+ val model = modelView.text.toString()
+ if (model.isBlank()) {
+ "请输入样品型号".show(this)
+ return@setOnClickListener
+ }
+
+ val factoryNumber = factoryNumberView.text.toString()
+ if (factoryNumber.isBlank()) {
+ "请输入出厂编号".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustName = entrustNameView.text.toString()
+ if (entrustName.isBlank()) {
+ "请输入委托方名称".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustContact = entrustContactView.text.toString()
+ if (entrustContact.isBlank()) {
+ "请输入委托方电话".show(this)
+ return@setOnClickListener
+ }
+
+ val emailCode = emailCodeView.text.toString()
+ if (emailCode.isBlank()) {
+ "请输入委托方邮编".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustAddress = entrustAddressView.text.toString()
+ if (entrustAddress.isBlank()) {
+ "请输入委托方地址".show(this)
+ return@setOnClickListener
+ }
+
+ val checkCycle = checkCycleView.text.toString()
+ if (checkCycle.isBlank()) {
+ "请输入检定周期".show(this)
+ return@setOnClickListener
+ }
+
+ val manufacturer = manufacturerView.text.toString()
+ if (manufacturer.isBlank()) {
+ "请输入生产厂家".show(this)
+ return@setOnClickListener
+ }
+
+ var country = countryView.text.toString()
+ if (country.isBlank()) {
+ country = "中国"
+ }
+
+ val factoryDate = factoryDateView.text.toString()
+ if (factoryDate.isBlank()) {
+ "请选择出厂年月".show(this)
+ return@setOnClickListener
+ }
+
+ val abc = abcView.text.toString()
+ if (abc.isBlank()) {
+ "请选择ABC".show(this)
+ return@setOnClickListener
+ }
+
+ val sender = senderView.text.toString()
+ if (sender.isBlank()) {
+ "请输入送检人名字".show(this)
+ return@setOnClickListener
+ }
+
+ val senderContact = senderContactView.text.toString()
+ if (senderContact.isBlank()) {
+ "请输入联系方式".show(this)
+ return@setOnClickListener
+ }
+
+ val checkProject = checkProjectView.text.toString()
+ if (checkProject.isBlank()) {
+ "请输入检定项目".show(this)
+ return@setOnClickListener
+ }
+
+ sampleViewModel.writeSample(
+ sampleName,
+ model,
+ factoryNumber,
+ entrustName,
+ entrustContact,
+ emailCode,
+ entrustAddress,
+ checkCycle,
+ manufacturer,
+ country,
+ factoryDate,
+ abc,
+ sender,
+ senderContact,
+ checkProject,
+ instructionsView.text.toString(),
+ remarkView.text.toString()
+ )
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_write_sample
+
+ override fun observeRequestState() {
+ sampleViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "样品写入中,请稍后...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9a2ba70..f28bb00 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -501,6 +501,53 @@
}
/**
+ * 新增样品
+ */
+ suspend fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject["sampleName"] = sampleName
+ paramObject["sampleModel"] = model
+ paramObject["manufacturingNo"] = factoryNumber
+ paramObject["customerName"] = entrustName
+ paramObject["phone"] = entrustContact
+ paramObject["postalCode"] = emailCode
+ paramObject["customerAddress"] = entrustAddress
+ paramObject["measurePeriod"] = checkCycle
+ paramObject["manufacturer"] = manufacturer
+ paramObject["manufacturerCountry"] = country
+ paramObject["manufacturingDate"] = factoryDate
+ paramObject["abc"] = abc
+ paramObject["deliverer"] = sender
+ paramObject["delivererTel"] = senderContact
+ paramObject["measureContent"] = checkProject
+ paramObject["minioFileName"] = instructions
+ paramObject["remark"] = remark
+
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.writeSample(AuthenticationHelper.token!!, requestBody)
+ }
+
+ /**
* 新增委托书
*/
suspend fun addEntrust(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
index 9c8d27b..d1815cc 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
@@ -24,6 +24,7 @@
import com.casic.xz.meterage.vm.DictionaryViewModel
import com.casic.xz.meterage.vm.EntrustViewModel
import com.casic.xz.meterage.vm.FileUploadViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.gyf.immersionbar.ImmersionBar
@@ -32,6 +33,7 @@
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -161,7 +163,7 @@
leftBackView.setOnClickListener { finish() }
estimateTimeView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
estimateTimeView.text = date
}
@@ -169,7 +171,7 @@
}
completedView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
completedView.text = date
}
@@ -210,7 +212,7 @@
//写入样品信息
writeSampleButton.setOnClickListener {
-
+ navigatePageTo()
}
pushEntrustView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
new file mode 100644
index 0000000..bd0d663
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
@@ -0,0 +1,188 @@
+package com.casic.xz.meterage.view.home
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.callback.DateSelectedCallback
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.SampleViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
+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 com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_write_sample.*
+
+class WriteSampleActivity : KotlinBaseActivity() {
+
+ private val items = arrayListOf("A", "B", "C")
+ private lateinit var sampleViewModel: SampleViewModel
+
+ override fun initData() {
+ sampleViewModel = ViewModelProvider(this)[SampleViewModel::class.java]
+ sampleViewModel.writeResult.observe(this) {
+ if (it.code == 200) {
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ countryView.setOnClickListener {
+
+ }
+
+ factoryDateView.setOnClickListener {
+ showDatePicker(DateEntity.target(1949, 10, 1), object : DateSelectedCallback {
+ override fun onDateSelected(date: String) {
+ factoryDateView.text = date
+ }
+ })
+ }
+
+ abcView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(items)
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object :
+ BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ abcView.text = items[position]
+ }
+ }).build().show()
+ }
+
+ pushSampleView.setOnClickListener {
+ val sampleName = sampleNameView.text.toString()
+ if (sampleName.isBlank()) {
+ "请输入样品名称".show(this)
+ return@setOnClickListener
+ }
+
+ val model = modelView.text.toString()
+ if (model.isBlank()) {
+ "请输入样品型号".show(this)
+ return@setOnClickListener
+ }
+
+ val factoryNumber = factoryNumberView.text.toString()
+ if (factoryNumber.isBlank()) {
+ "请输入出厂编号".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustName = entrustNameView.text.toString()
+ if (entrustName.isBlank()) {
+ "请输入委托方名称".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustContact = entrustContactView.text.toString()
+ if (entrustContact.isBlank()) {
+ "请输入委托方电话".show(this)
+ return@setOnClickListener
+ }
+
+ val emailCode = emailCodeView.text.toString()
+ if (emailCode.isBlank()) {
+ "请输入委托方邮编".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustAddress = entrustAddressView.text.toString()
+ if (entrustAddress.isBlank()) {
+ "请输入委托方地址".show(this)
+ return@setOnClickListener
+ }
+
+ val checkCycle = checkCycleView.text.toString()
+ if (checkCycle.isBlank()) {
+ "请输入检定周期".show(this)
+ return@setOnClickListener
+ }
+
+ val manufacturer = manufacturerView.text.toString()
+ if (manufacturer.isBlank()) {
+ "请输入生产厂家".show(this)
+ return@setOnClickListener
+ }
+
+ var country = countryView.text.toString()
+ if (country.isBlank()) {
+ country = "中国"
+ }
+
+ val factoryDate = factoryDateView.text.toString()
+ if (factoryDate.isBlank()) {
+ "请选择出厂年月".show(this)
+ return@setOnClickListener
+ }
+
+ val abc = abcView.text.toString()
+ if (abc.isBlank()) {
+ "请选择ABC".show(this)
+ return@setOnClickListener
+ }
+
+ val sender = senderView.text.toString()
+ if (sender.isBlank()) {
+ "请输入送检人名字".show(this)
+ return@setOnClickListener
+ }
+
+ val senderContact = senderContactView.text.toString()
+ if (senderContact.isBlank()) {
+ "请输入联系方式".show(this)
+ return@setOnClickListener
+ }
+
+ val checkProject = checkProjectView.text.toString()
+ if (checkProject.isBlank()) {
+ "请输入检定项目".show(this)
+ return@setOnClickListener
+ }
+
+ sampleViewModel.writeSample(
+ sampleName,
+ model,
+ factoryNumber,
+ entrustName,
+ entrustContact,
+ emailCode,
+ entrustAddress,
+ checkCycle,
+ manufacturer,
+ country,
+ factoryDate,
+ abc,
+ sender,
+ senderContact,
+ checkProject,
+ instructionsView.text.toString(),
+ remarkView.text.toString()
+ )
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_write_sample
+
+ override fun observeRequestState() {
+ sampleViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "样品写入中,请稍后...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
index 182140d..7234d20 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ActionResultModel
import com.casic.xz.meterage.model.SampleListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val sampleList = MutableLiveData()
+ val writeResult = MutableLiveData()
fun getSampleList(
customerName: String,
@@ -62,4 +64,58 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.writeSample(
+ sampleName,
+ model,
+ factoryNumber,
+ entrustName,
+ entrustContact,
+ emailCode,
+ entrustAddress,
+ checkCycle,
+ manufacturer,
+ country,
+ factoryDate,
+ abc,
+ sender,
+ senderContact,
+ checkProject,
+ instructions,
+ remark
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ writeResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ })
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0fba91b..899fc1c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,6 +62,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
index e112d1c..a932a03 100644
--- a/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/extensions/Activity.kt
@@ -9,7 +9,7 @@
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.sp2px
-fun Activity.showDatePicker(callback: DateSelectedCallback) {
+fun Activity.showDatePicker(start: DateEntity, callback: DateSelectedCallback) {
val datePicker = DatePicker(this)
val layout = datePicker.wheelLayout
@@ -21,7 +21,7 @@
layout.setSelectedTextBold(true)
layout.setResetWhenLinkage(false)
layout.setRange(
- DateEntity.today(),
+ start,
DateEntity.target(2050, 12, 31),
DateEntity.today()
)
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 8f4fe44..90d2aa3 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -233,6 +233,15 @@
): String
/**
+ * 新增样品
+ */
+ @POST("/customer/sample/add")
+ suspend fun writeSample(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
+
+ /**
* 新增委托书
*/
@POST("/business/order/add")
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9a2ba70..f28bb00 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -501,6 +501,53 @@
}
/**
+ * 新增样品
+ */
+ suspend fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ): String {
+ val paramObject = JSONObject()
+ paramObject["sampleName"] = sampleName
+ paramObject["sampleModel"] = model
+ paramObject["manufacturingNo"] = factoryNumber
+ paramObject["customerName"] = entrustName
+ paramObject["phone"] = entrustContact
+ paramObject["postalCode"] = emailCode
+ paramObject["customerAddress"] = entrustAddress
+ paramObject["measurePeriod"] = checkCycle
+ paramObject["manufacturer"] = manufacturer
+ paramObject["manufacturerCountry"] = country
+ paramObject["manufacturingDate"] = factoryDate
+ paramObject["abc"] = abc
+ paramObject["deliverer"] = sender
+ paramObject["delivererTel"] = senderContact
+ paramObject["measureContent"] = checkProject
+ paramObject["minioFileName"] = instructions
+ paramObject["remark"] = remark
+
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.writeSample(AuthenticationHelper.token!!, requestBody)
+ }
+
+ /**
* 新增委托书
*/
suspend fun addEntrust(
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
index 9c8d27b..d1815cc 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustAddActivity.kt
@@ -24,6 +24,7 @@
import com.casic.xz.meterage.vm.DictionaryViewModel
import com.casic.xz.meterage.vm.EntrustViewModel
import com.casic.xz.meterage.vm.FileUploadViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.gyf.immersionbar.ImmersionBar
@@ -32,6 +33,7 @@
import com.luck.picture.lib.entity.LocalMedia
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.vm.LoadState
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
@@ -161,7 +163,7 @@
leftBackView.setOnClickListener { finish() }
estimateTimeView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
estimateTimeView.text = date
}
@@ -169,7 +171,7 @@
}
completedView.setOnClickListener {
- showDatePicker(object : DateSelectedCallback {
+ showDatePicker(DateEntity.today(), object : DateSelectedCallback {
override fun onDateSelected(date: String) {
completedView.text = date
}
@@ -210,7 +212,7 @@
//写入样品信息
writeSampleButton.setOnClickListener {
-
+ navigatePageTo()
}
pushEntrustView.setOnClickListener {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
new file mode 100644
index 0000000..bd0d663
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/WriteSampleActivity.kt
@@ -0,0 +1,188 @@
+package com.casic.xz.meterage.view.home
+
+import android.graphics.Color
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.callback.DateSelectedCallback
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showDatePicker
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.SampleViewModel
+import com.github.gzuliyujiang.wheelpicker.entity.DateEntity
+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 com.pengxh.kt.lite.widget.dialog.BottomActionSheet
+import kotlinx.android.synthetic.main.activity_write_sample.*
+
+class WriteSampleActivity : KotlinBaseActivity() {
+
+ private val items = arrayListOf("A", "B", "C")
+ private lateinit var sampleViewModel: SampleViewModel
+
+ override fun initData() {
+ sampleViewModel = ViewModelProvider(this)[SampleViewModel::class.java]
+ sampleViewModel.writeResult.observe(this) {
+ if (it.code == 200) {
+ finish()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ countryView.setOnClickListener {
+
+ }
+
+ factoryDateView.setOnClickListener {
+ showDatePicker(DateEntity.target(1949, 10, 1), object : DateSelectedCallback {
+ override fun onDateSelected(date: String) {
+ factoryDateView.text = date
+ }
+ })
+ }
+
+ abcView.setOnClickListener {
+ BottomActionSheet.Builder()
+ .setContext(this)
+ .setActionItemTitle(items)
+ .setItemTextColor(Color.BLUE)
+ .setOnActionSheetListener(object :
+ BottomActionSheet.OnActionSheetListener {
+ override fun onActionItemClick(position: Int) {
+ abcView.text = items[position]
+ }
+ }).build().show()
+ }
+
+ pushSampleView.setOnClickListener {
+ val sampleName = sampleNameView.text.toString()
+ if (sampleName.isBlank()) {
+ "请输入样品名称".show(this)
+ return@setOnClickListener
+ }
+
+ val model = modelView.text.toString()
+ if (model.isBlank()) {
+ "请输入样品型号".show(this)
+ return@setOnClickListener
+ }
+
+ val factoryNumber = factoryNumberView.text.toString()
+ if (factoryNumber.isBlank()) {
+ "请输入出厂编号".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustName = entrustNameView.text.toString()
+ if (entrustName.isBlank()) {
+ "请输入委托方名称".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustContact = entrustContactView.text.toString()
+ if (entrustContact.isBlank()) {
+ "请输入委托方电话".show(this)
+ return@setOnClickListener
+ }
+
+ val emailCode = emailCodeView.text.toString()
+ if (emailCode.isBlank()) {
+ "请输入委托方邮编".show(this)
+ return@setOnClickListener
+ }
+
+ val entrustAddress = entrustAddressView.text.toString()
+ if (entrustAddress.isBlank()) {
+ "请输入委托方地址".show(this)
+ return@setOnClickListener
+ }
+
+ val checkCycle = checkCycleView.text.toString()
+ if (checkCycle.isBlank()) {
+ "请输入检定周期".show(this)
+ return@setOnClickListener
+ }
+
+ val manufacturer = manufacturerView.text.toString()
+ if (manufacturer.isBlank()) {
+ "请输入生产厂家".show(this)
+ return@setOnClickListener
+ }
+
+ var country = countryView.text.toString()
+ if (country.isBlank()) {
+ country = "中国"
+ }
+
+ val factoryDate = factoryDateView.text.toString()
+ if (factoryDate.isBlank()) {
+ "请选择出厂年月".show(this)
+ return@setOnClickListener
+ }
+
+ val abc = abcView.text.toString()
+ if (abc.isBlank()) {
+ "请选择ABC".show(this)
+ return@setOnClickListener
+ }
+
+ val sender = senderView.text.toString()
+ if (sender.isBlank()) {
+ "请输入送检人名字".show(this)
+ return@setOnClickListener
+ }
+
+ val senderContact = senderContactView.text.toString()
+ if (senderContact.isBlank()) {
+ "请输入联系方式".show(this)
+ return@setOnClickListener
+ }
+
+ val checkProject = checkProjectView.text.toString()
+ if (checkProject.isBlank()) {
+ "请输入检定项目".show(this)
+ return@setOnClickListener
+ }
+
+ sampleViewModel.writeSample(
+ sampleName,
+ model,
+ factoryNumber,
+ entrustName,
+ entrustContact,
+ emailCode,
+ entrustAddress,
+ checkCycle,
+ manufacturer,
+ country,
+ factoryDate,
+ abc,
+ sender,
+ senderContact,
+ checkProject,
+ instructionsView.text.toString(),
+ remarkView.text.toString()
+ )
+ }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_write_sample
+
+ override fun observeRequestState() {
+ sampleViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "样品写入中,请稍后...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
index 182140d..7234d20 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/SampleViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ActionResultModel
import com.casic.xz.meterage.model.SampleListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val sampleList = MutableLiveData()
+ val writeResult = MutableLiveData()
fun getSampleList(
customerName: String,
@@ -62,4 +64,58 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun writeSample(
+ sampleName: String,
+ model: String,
+ factoryNumber: String,
+ entrustName: String,
+ entrustContact: String,
+ emailCode: String,
+ entrustAddress: String,
+ checkCycle: String,
+ manufacturer: String,
+ country: String,
+ factoryDate: String,
+ abc: String,
+ sender: String,
+ senderContact: String,
+ checkProject: String,
+ instructions: String,
+ remark: String
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.writeSample(
+ sampleName,
+ model,
+ factoryNumber,
+ entrustName,
+ entrustContact,
+ emailCode,
+ entrustAddress,
+ checkCycle,
+ manufacturer,
+ country,
+ factoryDate,
+ abc,
+ sender,
+ senderContact,
+ checkProject,
+ instructions,
+ remark
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ writeResult.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_write_sample.xml b/app/src/main/res/layout/activity_write_sample.xml
new file mode 100644
index 0000000..8e20acb
--- /dev/null
+++ b/app/src/main/res/layout/activity_write_sample.xml
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file