diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
new file mode 100644
index 0000000..2997f78
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.xz.meterage.vm
+
+import androidx.lifecycle.MutableLiveData
+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.DictionaryModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class DictionaryViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val dictionary = MutableLiveData()
+
+ fun getDictionaryByCode(dictCode: String) = launch({
+ val response = RetrofitServiceManager.getDictionaryByCode(dictCode)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ dictionary.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ 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 a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
new file mode 100644
index 0000000..2997f78
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.xz.meterage.vm
+
+import androidx.lifecycle.MutableLiveData
+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.DictionaryModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class DictionaryViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val dictionary = MutableLiveData()
+
+ fun getDictionaryByCode(dictCode: String) = launch({
+ val response = RetrofitServiceManager.getDictionaryByCode(dictCode)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ dictionary.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ it.cause.toString().show(BaseApplication.get())
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
index 561623f..0058475 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.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.EntrustDetailModel
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val entrustList = MutableLiveData()
+ val entrustDetail = MutableLiveData()
fun getEntrustList(
customerName: String,
@@ -60,4 +62,22 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun getEntrustDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getEntrustDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ entrustDetail.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 a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
new file mode 100644
index 0000000..2997f78
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.xz.meterage.vm
+
+import androidx.lifecycle.MutableLiveData
+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.DictionaryModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class DictionaryViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val dictionary = MutableLiveData()
+
+ fun getDictionaryByCode(dictCode: String) = launch({
+ val response = RetrofitServiceManager.getDictionaryByCode(dictCode)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ dictionary.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ it.cause.toString().show(BaseApplication.get())
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
index 561623f..0058475 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.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.EntrustDetailModel
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val entrustList = MutableLiveData()
+ val entrustDetail = MutableLiveData()
fun getEntrustList(
customerName: String,
@@ -60,4 +62,22 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun getEntrustDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getEntrustDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ entrustDetail.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_entrust_detail.xml b/app/src/main/res/layout/activity_entrust_detail.xml
new file mode 100644
index 0000000..734c2bc
--- /dev/null
+++ b/app/src/main/res/layout/activity_entrust_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
new file mode 100644
index 0000000..2997f78
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.xz.meterage.vm
+
+import androidx.lifecycle.MutableLiveData
+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.DictionaryModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class DictionaryViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val dictionary = MutableLiveData()
+
+ fun getDictionaryByCode(dictCode: String) = launch({
+ val response = RetrofitServiceManager.getDictionaryByCode(dictCode)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ dictionary.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ it.cause.toString().show(BaseApplication.get())
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
index 561623f..0058475 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.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.EntrustDetailModel
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val entrustList = MutableLiveData()
+ val entrustDetail = MutableLiveData()
fun getEntrustList(
customerName: String,
@@ -60,4 +62,22 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun getEntrustDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getEntrustDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ entrustDetail.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_entrust_detail.xml b/app/src/main/res/layout/activity_entrust_detail.xml
new file mode 100644
index 0000000..734c2bc
--- /dev/null
+++ b/app/src/main/res/layout/activity_entrust_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_meterage_train_detail.xml b/app/src/main/res/layout/activity_meterage_train_detail.xml
index 8829ff9..67ed6ef 100644
--- a/app/src/main/res/layout/activity_meterage_train_detail.xml
+++ b/app/src/main/res/layout/activity_meterage_train_detail.xml
@@ -8,6 +8,11 @@
+
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initData() {
+ val entrustId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(entrustId))
+ fragmentPages.add(LogRecordFragment())
+
+ val entrustPageTitles = arrayOf("基础信息", "日志记录")
+
+ entrustViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, entrustPageTitles
+ )
+ entrustViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(entrustViewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_entrust_detail
+
+ override fun observeRequestState() {
+
+ }
+
+ 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/search/SearchEntrustResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchEntrustResultActivity.kt
index 763a6fb..6116ad7 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
@@ -8,9 +8,11 @@
import com.casic.xz.meterage.extensions.showEmptyPage
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.home.EntrustDetailActivity
import com.casic.xz.meterage.vm.EntrustViewModel
import com.gyf.immersionbar.ImmersionBar
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.utils.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -124,7 +126,7 @@
entrustAdapter.notifyDataSetChanged()
} else {
if (dataBeans.size == 0) {
- emptyView!!.showEmptyPage("无新的委托需求") {
+ emptyView!!.showEmptyPage("无符合条件的委托需求") {
pageIndex = 1
getEntrustListByPage()
}
@@ -136,7 +138,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
new file mode 100644
index 0000000..2997f78
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/DictionaryViewModel.kt
@@ -0,0 +1,33 @@
+package com.casic.xz.meterage.vm
+
+import androidx.lifecycle.MutableLiveData
+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.DictionaryModel
+import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.launch
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.vm.BaseViewModel
+
+class DictionaryViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val dictionary = MutableLiveData()
+
+ fun getDictionaryByCode(dictCode: String) = launch({
+ val response = RetrofitServiceManager.getDictionaryByCode(dictCode)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ dictionary.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ it.cause.toString().show(BaseApplication.get())
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
index 561623f..0058475 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/EntrustViewModel.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.EntrustDetailModel
import com.casic.xz.meterage.model.EntrustListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val entrustList = MutableLiveData()
+ val entrustDetail = MutableLiveData()
fun getEntrustList(
customerName: String,
@@ -60,4 +62,22 @@
loadState.value = LoadState.Fail
it.cause.toString().show(BaseApplication.get())
})
+
+ fun getEntrustDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getEntrustDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ entrustDetail.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_entrust_detail.xml b/app/src/main/res/layout/activity_entrust_detail.xml
new file mode 100644
index 0000000..734c2bc
--- /dev/null
+++ b/app/src/main/res/layout/activity_entrust_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_meterage_train_detail.xml b/app/src/main/res/layout/activity_meterage_train_detail.xml
index 8829ff9..67ed6ef 100644
--- a/app/src/main/res/layout/activity_meterage_train_detail.xml
+++ b/app/src/main/res/layout/activity_meterage_train_detail.xml
@@ -8,6 +8,11 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a535150..5edac14 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,6 +58,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
new file mode 100644
index 0000000..a365eaf
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CertificateTypeAdapter.kt
@@ -0,0 +1,44 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.CheckBox
+import android.widget.LinearLayout
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.DictionaryModel
+
+class CertificateTypeAdapter(
+ context: Context,
+ private val dataRows: MutableList,
+ private val checkedArray: List
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_certificate_type_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+ holder.checkbox.text = rowsBean.name
+ //设置选中状态
+ checkedArray.forEach {
+ if (it.toInt() == position) {
+ holder.checkbox.isChecked = true
+ }
+ }
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var checkbox: CheckBox = view.findViewById(R.id.checkbox)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
new file mode 100644
index 0000000..b76dc7f
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/CustomerSampleAdapter.kt
@@ -0,0 +1,38 @@
+package com.casic.xz.meterage.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.model.EntrustDetailModel
+
+class CustomerSampleAdapter(
+ context: Context,
+ private val dataRows: MutableList
+) : RecyclerView.Adapter() {
+
+ private var layoutInflater: LayoutInflater = LayoutInflater.from(context)
+
+ override fun getItemCount(): Int = dataRows.size
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = ItemViewHolder(
+ layoutInflater.inflate(R.layout.item_customer_sample_rv_l, parent, false)
+ )
+
+ override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
+ val params = holder.itemView.layoutParams
+ params.height = LinearLayout.LayoutParams.WRAP_CONTENT
+ //绑定数据
+ val rowsBean = dataRows[position]
+
+ holder.sampleCodeView.text = rowsBean.sampleName
+ }
+
+ inner class ItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ var sampleCodeView: TextView = view.findViewById(R.id.sampleCodeView)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
index 88c4419..2d21c67 100644
--- a/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
+++ b/app/src/main/java/com/casic/xz/meterage/adapter/EntrustAdapter.kt
@@ -9,7 +9,6 @@
import com.casic.xz.meterage.R
import com.casic.xz.meterage.model.EntrustListModel
import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.show
class EntrustAdapter(
private val context: Context,
@@ -61,11 +60,14 @@
//绑定事件
holder.entrustStateView.setOnClickListener {
- if (rowsBean.status == "2" || rowsBean.status == "4") {
- "当前状态不可编辑".show(context)
- } else {
- listener?.onStateViewClicked(position)
- }
+// if (rowsBean.status == "2" || rowsBean.status == "4") {
+// "当前状态不可编辑".show(context)
+// } else {
+// listener?.onStateViewClicked(position)
+// }
+
+ //暂不做判断,计量中心人员只能接收和退回,不能编辑
+ listener?.onStateViewClicked(position)
}
}
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
new file mode 100644
index 0000000..14bbc65
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/BasicInformationFragment.kt
@@ -0,0 +1,103 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+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.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.DictionaryViewModel
+import com.casic.xz.meterage.vm.EntrustViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_entrust_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var entrustViewModel: EntrustViewModel
+ private lateinit var dictionaryViewModel: DictionaryViewModel
+
+ override fun initData() {
+ entrustViewModel = ViewModelProvider(this)[EntrustViewModel::class.java]
+ dictionaryViewModel = ViewModelProvider(this)[DictionaryViewModel::class.java]
+
+ //获取委托书基本信息
+ entrustViewModel.getEntrustDetail(id)
+ entrustViewModel.entrustDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data
+
+ entrustCodeView.text = data.orderCode
+ senderView.text = data.deliverer
+ contactView.text = data.delivererTel
+ entrustCreateView.text = data.orderTime
+ estimateTimeView.text = data.planDeliverTime
+ completedView.text = data.requireOverTime
+ entrustNameView.text = data.customerName
+ entrustContactView.text = data.customerPhone
+ entrustAddressView.text = data.customerAddress
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(R.color.themeColor.convertColor(requireContext()))
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+
+ //证书
+ val split = data.certifications.split(",")
+ dictionaryViewModel.getDictionaryByCode("certificationClass")
+ dictionaryViewModel.dictionary.observe(this) { dic ->
+ if (dic.code == 200) {
+ typeRecyclerView.adapter = CertificateTypeAdapter(
+ requireContext(), dic.data, split
+ )
+ }
+ }
+
+ //加急
+ if (data.isUrgent == "0") {
+ RadioButton2.isChecked = true
+ } else {
+ RadioButton1.isChecked = true
+ }
+
+ //样品
+ sampleRecyclerView.adapter = CustomerSampleAdapter(
+ requireContext(), data.customerSampleInfoList
+ )
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_basic_information
+
+ override fun observeRequestState() {
+ entrustViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
new file mode 100644
index 0000000..a4dd76d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/entrust/LogRecordFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.entrust
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class LogRecordFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_entrust_log
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
new file mode 100644
index 0000000..b85ad00
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/DictionaryModel.java
@@ -0,0 +1,73 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class DictionaryModel {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String name;
+ private String id;
+ private String value;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
new file mode 100644
index 0000000..1122f4d
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/EntrustDetailModel.java
@@ -0,0 +1,625 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class EntrustDetailModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private String certifications;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private List customerSampleInfoList;
+ private String deliverTime;
+ private String deliverer;
+ private String delivererId;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isUrgent;
+ private String minioFileName;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String status;
+ private String updateTime;
+
+ public String getCertifications() {
+ return certifications;
+ }
+
+ public void setCertifications(String certifications) {
+ this.certifications = certifications;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public List getCustomerSampleInfoList() {
+ return customerSampleInfoList;
+ }
+
+ public void setCustomerSampleInfoList(List customerSampleInfoList) {
+ this.customerSampleInfoList = customerSampleInfoList;
+ }
+
+ public String getDeliverTime() {
+ return deliverTime;
+ }
+
+ public void setDeliverTime(String deliverTime) {
+ this.deliverTime = deliverTime;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererId() {
+ return delivererId;
+ }
+
+ public void setDelivererId(String delivererId) {
+ this.delivererId = delivererId;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public static class CustomerSampleInfoListModel {
+ private String abc;
+ private String appendix;
+ private String appendixDescn;
+ private String createTime;
+ private String createUser;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isDel;
+ private String isExistSample;
+ private String labelBind;
+ private String manufacturer;
+ private String manufacturerCountry;
+ private String manufacturingDate;
+ private String manufacturingNo;
+ private String measureCategory;
+ private String measureCategoryName;
+ private String measureContent;
+ private String measureLastTime;
+ private String measurePeriod;
+ private String measureType;
+ private String measureTypeName;
+ private String minioFileName;
+ private String orderId;
+ private String phone;
+ private String postalCode;
+ private String powerVoltage;
+ private String remark;
+ private String sampleBelong;
+ private String sampleBelongName;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String specialRequire;
+ private String updateTime;
+ private String updateUser;
+ private String validDeadline;
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+ public String getAppendix() {
+ return appendix;
+ }
+
+ public void setAppendix(String appendix) {
+ this.appendix = appendix;
+ }
+
+ public String getAppendixDescn() {
+ return appendixDescn;
+ }
+
+ public void setAppendixDescn(String appendixDescn) {
+ this.appendixDescn = appendixDescn;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getIsExistSample() {
+ return isExistSample;
+ }
+
+ public void setIsExistSample(String isExistSample) {
+ this.isExistSample = isExistSample;
+ }
+
+ public String getLabelBind() {
+ return labelBind;
+ }
+
+ public void setLabelBind(String labelBind) {
+ this.labelBind = labelBind;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+
+ public String getManufacturerCountry() {
+ return manufacturerCountry;
+ }
+
+ public void setManufacturerCountry(String manufacturerCountry) {
+ this.manufacturerCountry = manufacturerCountry;
+ }
+
+ public String getManufacturingDate() {
+ return manufacturingDate;
+ }
+
+ public void setManufacturingDate(String manufacturingDate) {
+ this.manufacturingDate = manufacturingDate;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasureCategory() {
+ return measureCategory;
+ }
+
+ public void setMeasureCategory(String measureCategory) {
+ this.measureCategory = measureCategory;
+ }
+
+ public String getMeasureCategoryName() {
+ return measureCategoryName;
+ }
+
+ public void setMeasureCategoryName(String measureCategoryName) {
+ this.measureCategoryName = measureCategoryName;
+ }
+
+ public String getMeasureContent() {
+ return measureContent;
+ }
+
+ public void setMeasureContent(String measureContent) {
+ this.measureContent = measureContent;
+ }
+
+ public String getMeasureLastTime() {
+ return measureLastTime;
+ }
+
+ public void setMeasureLastTime(String measureLastTime) {
+ this.measureLastTime = measureLastTime;
+ }
+
+ public String getMeasurePeriod() {
+ return measurePeriod;
+ }
+
+ public void setMeasurePeriod(String measurePeriod) {
+ this.measurePeriod = measurePeriod;
+ }
+
+ public String getMeasureType() {
+ return measureType;
+ }
+
+ public void setMeasureType(String measureType) {
+ this.measureType = measureType;
+ }
+
+ public String getMeasureTypeName() {
+ return measureTypeName;
+ }
+
+ public void setMeasureTypeName(String measureTypeName) {
+ this.measureTypeName = measureTypeName;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPostalCode() {
+ return postalCode;
+ }
+
+ public void setPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ }
+
+ public String getPowerVoltage() {
+ return powerVoltage;
+ }
+
+ public void setPowerVoltage(String powerVoltage) {
+ this.powerVoltage = powerVoltage;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSampleBelong() {
+ return sampleBelong;
+ }
+
+ public void setSampleBelong(String sampleBelong) {
+ this.sampleBelong = sampleBelong;
+ }
+
+ public String getSampleBelongName() {
+ return sampleBelongName;
+ }
+
+ public void setSampleBelongName(String sampleBelongName) {
+ this.sampleBelongName = sampleBelongName;
+ }
+
+ public String getSampleModel() {
+ return sampleModel;
+ }
+
+ public void setSampleModel(String sampleModel) {
+ this.sampleModel = sampleModel;
+ }
+
+ public String getSampleName() {
+ return sampleName;
+ }
+
+ public void setSampleName(String sampleName) {
+ this.sampleName = sampleName;
+ }
+
+ public String getSampleNo() {
+ return sampleNo;
+ }
+
+ public void setSampleNo(String sampleNo) {
+ this.sampleNo = sampleNo;
+ }
+
+ public String getSpecialRequire() {
+ return specialRequire;
+ }
+
+ public void setSpecialRequire(String specialRequire) {
+ this.specialRequire = specialRequire;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+
+ public String getUpdateUser() {
+ return updateUser;
+ }
+
+ public void setUpdateUser(String updateUser) {
+ this.updateUser = updateUser;
+ }
+
+ public String getValidDeadline() {
+ return validDeadline;
+ }
+
+ public void setValidDeadline(String validDeadline) {
+ this.validDeadline = validDeadline;
+ }
+ }
+ }
+}
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 c80f6e6..6120702 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
@@ -26,6 +26,15 @@
): String
/**
+ * 获取字典
+ */
+ @GET("/sys/dict/code/{dictCode}")
+ suspend fun getDictionaryByCode(
+ @Header("token") token: String,
+ @Path("dictCode") dictCode: String
+ ): String
+
+ /**
* 获取通知公告列表
*/
@POST("/system/notice/listPage")
@@ -173,4 +182,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取委托书详情
+ */
+ @POST("/business/order/detail")
+ suspend fun getEntrustDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
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 aa61732..6d7f90f 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
@@ -48,6 +48,13 @@
}
/**
+ * 获取字典
+ */
+ suspend fun getDictionaryByCode(dictCode: String): String {
+ return api.getDictionaryByCode(AuthenticationHelper.token!!, dictCode)
+ }
+
+ /**
* 获取通知公告列表
*/
suspend fun getNoticeList(
@@ -408,4 +415,16 @@
offsetMap["offset"] = offset
return api.getEntrustList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap)
}
+
+ /**
+ * 获取委托书详情
+ */
+ suspend fun getEntrustDetail(id: String): String {
+ val paramObject = JSONObject()
+ paramObject.put("id", id)
+ val requestBody = paramObject.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getEntrustDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
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 0b5aa9d..d56c3d7 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
@@ -139,7 +139,7 @@
EntrustAdapter.OnItemClickListener {
override fun onStateViewClicked(position: Int) {
val rowsModel = dataBeans[position]
-// navigatePageTo(rowsModel.id)
+ navigatePageTo(rowsModel.id)
}
})
}
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
new file mode 100644
index 0000000..21a5ae7
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/EntrustDetailActivity.kt
@@ -0,0 +1,50 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.entrust.BasicInformationFragment
+import com.casic.xz.meterage.fragment.entrust.LogRecordFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_entrust_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class EntrustDetailActivity : KotlinBaseActivity() {
+
+ private var fragmentPages: ArrayList