diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
new file mode 100644
index 0000000..2baefd2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
@@ -0,0 +1,57 @@
+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.certificate.CertificateReportFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_certificate.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class CertificateReportActivity : KotlinBaseActivity() {
+
+ private val pageTitles = arrayOf(
+ "草稿箱",
+ "待审批",
+ "审批中",
+ "已通过",
+ "未通过",
+ "已取消",
+ "非草稿",
+ "未通过",
+ "可打印"
+ )
+ private var fragmentPages: ArrayList = ArrayList()
+
+ init {
+ pageTitles.indices.forEach {
+ fragmentPages.add(CertificateReportFragment((it + 1).toString()))
+ }
+ }
+
+ override fun initData() {
+ viewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, pageTitles
+ )
+ //绑定
+ topTabLayout.setupWithViewPager(viewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_certificate
+
+ 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 dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
new file mode 100644
index 0000000..2baefd2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
@@ -0,0 +1,57 @@
+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.certificate.CertificateReportFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_certificate.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class CertificateReportActivity : KotlinBaseActivity() {
+
+ private val pageTitles = arrayOf(
+ "草稿箱",
+ "待审批",
+ "审批中",
+ "已通过",
+ "未通过",
+ "已取消",
+ "非草稿",
+ "未通过",
+ "可打印"
+ )
+ private var fragmentPages: ArrayList = ArrayList()
+
+ init {
+ pageTitles.indices.forEach {
+ fragmentPages.add(CertificateReportFragment((it + 1).toString()))
+ }
+ }
+
+ override fun initData() {
+ viewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, pageTitles
+ )
+ //绑定
+ topTabLayout.setupWithViewPager(viewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_certificate
+
+ 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/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
new file mode 100644
index 0000000..735e530
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
@@ -0,0 +1,62 @@
+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.CertificateModel
+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
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 证书报告 VM
+ * */
+class CertificateViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val certificateList = MutableLiveData()
+
+ fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getCertificateReportList(
+ approvalStatus,
+ certificateReportCode,
+ customerName,
+ measureCategory,
+ orderCode,
+ sampleName,
+ sampleNo,
+ ids,
+ offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ certificateList.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())
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
new file mode 100644
index 0000000..2baefd2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
@@ -0,0 +1,57 @@
+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.certificate.CertificateReportFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_certificate.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class CertificateReportActivity : KotlinBaseActivity() {
+
+ private val pageTitles = arrayOf(
+ "草稿箱",
+ "待审批",
+ "审批中",
+ "已通过",
+ "未通过",
+ "已取消",
+ "非草稿",
+ "未通过",
+ "可打印"
+ )
+ private var fragmentPages: ArrayList = ArrayList()
+
+ init {
+ pageTitles.indices.forEach {
+ fragmentPages.add(CertificateReportFragment((it + 1).toString()))
+ }
+ }
+
+ override fun initData() {
+ viewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, pageTitles
+ )
+ //绑定
+ topTabLayout.setupWithViewPager(viewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_certificate
+
+ 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/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
new file mode 100644
index 0000000..735e530
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
@@ -0,0 +1,62 @@
+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.CertificateModel
+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
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 证书报告 VM
+ * */
+class CertificateViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val certificateList = MutableLiveData()
+
+ fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getCertificateReportList(
+ approvalStatus,
+ certificateReportCode,
+ customerName,
+ measureCategory,
+ orderCode,
+ sampleName,
+ sampleNo,
+ ids,
+ offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ certificateList.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())
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_certificate.xml b/app/src/main/res/layout/activity_certificate.xml
new file mode 100644
index 0000000..87fa531
--- /dev/null
+++ b/app/src/main/res/layout/activity_certificate.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 dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
new file mode 100644
index 0000000..2baefd2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
@@ -0,0 +1,57 @@
+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.certificate.CertificateReportFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_certificate.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class CertificateReportActivity : KotlinBaseActivity() {
+
+ private val pageTitles = arrayOf(
+ "草稿箱",
+ "待审批",
+ "审批中",
+ "已通过",
+ "未通过",
+ "已取消",
+ "非草稿",
+ "未通过",
+ "可打印"
+ )
+ private var fragmentPages: ArrayList = ArrayList()
+
+ init {
+ pageTitles.indices.forEach {
+ fragmentPages.add(CertificateReportFragment((it + 1).toString()))
+ }
+ }
+
+ override fun initData() {
+ viewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, pageTitles
+ )
+ //绑定
+ topTabLayout.setupWithViewPager(viewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_certificate
+
+ 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/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
new file mode 100644
index 0000000..735e530
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
@@ -0,0 +1,62 @@
+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.CertificateModel
+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
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 证书报告 VM
+ * */
+class CertificateViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val certificateList = MutableLiveData()
+
+ fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getCertificateReportList(
+ approvalStatus,
+ certificateReportCode,
+ customerName,
+ measureCategory,
+ orderCode,
+ sampleName,
+ sampleNo,
+ ids,
+ offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ certificateList.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())
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_certificate.xml b/app/src/main/res/layout/activity_certificate.xml
new file mode 100644
index 0000000..87fa531
--- /dev/null
+++ b/app/src/main/res/layout/activity_certificate.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_certificate_report.xml b/app/src/main/res/layout/fragment_certificate_report.xml
new file mode 100644
index 0000000..772d499
--- /dev/null
+++ b/app/src/main/res/layout/fragment_certificate_report.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd791fe..c58a8a6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -65,6 +65,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 8c89dfb..151f951 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -265,7 +265,7 @@
when (t) {
"仪器设备" -> requireContext().navigatePageTo()
"标准装置" -> requireContext().navigatePageTo()
-// "证书报告" -> requireContext().navigatePageTo()
+ "证书报告" -> requireContext().navigatePageTo()
"委托需求" -> requireContext().navigatePageTo()
// "访客" -> requireContext().navigatePageTo()
"标准规范" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
new file mode 100644
index 0000000..2f3c95c
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/CertificateReportFragment.kt
@@ -0,0 +1,162 @@
+package com.casic.xz.meterage.fragment.certificate
+
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.CertificateModel
+import com.casic.xz.meterage.vm.CertificateViewModel
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import kotlinx.android.synthetic.main.fragment_certificate_report.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+/**
+ * 计量法规
+ *
+ * formId:ywglzsbg
+ * */
+class CertificateReportFragment(private val status: String) : KotlinBaseFragment() {
+
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var certificateViewModel: CertificateViewModel
+ private lateinit var certificateAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java]
+ certificateViewModel.certificateList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ certificateLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(requireContext())
+ }
+ dataBeans.addAll(dataRows)
+ certificateLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023030802)
+ }
+ }
+ }
+
+ override fun initEvent() {
+ certificateLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ certificateLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getCertificateReportList()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getCertificateReportList()
+ }
+
+ private fun getCertificateReportList() {
+ certificateViewModel.getCertificateReportList(
+ status,
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_certificate_report
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023030802 -> {
+ if (isRefresh || isLoadMore) {
+ certificateAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无相关证书报告") {
+ pageIndex = 1
+ getCertificateReportList()
+ }
+ } else {
+ emptyView!!.hide()
+ certificateAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_certificate_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: CertificateModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.reportNameView, item.certificateReportName)
+// .setText(R.id.fileStateView, item.effectiveStatusName)
+// .setText(R.id.remarkView, "备注:$remark")
+// .setText(R.id.fileCodeView, "文件号:${item.fileNo}")
+// .setText(R.id.releaseDateView, "实施时间:${item.publishTime}")
+//
+// if (!item.effectiveStatus.equals("1")) {
+// viewHolder.setBackgroundColor(
+// R.id.fileStateView,
+// R.color.gray.convertColor(requireContext())
+// )
+// }
+ }
+ }
+ certificateRecyclerView.addItemDecoration(
+ DividerItemDecoration(requireContext(), DividerItemDecoration.VERTICAL)
+ )
+ certificateRecyclerView.adapter = certificateAdapter
+ certificateAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: CertificateModel.DataModel.RowsModel
+ ) {
+// requireContext().navigatePageTo(t.toJson())
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
new file mode 100644
index 0000000..ec0d25b
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/CertificateModel.java
@@ -0,0 +1,202 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class CertificateModel {
+
+ 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 List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String approvalStatus;
+ private String approvalStatusName;
+ private String calibrationMajor;
+ private String certificateReportCode;
+ private String certificateReportName;
+ private String createTime;
+ private String decisionItem;
+ private String id;
+ private String manufacturingNo;
+ private String measurePersonId;
+ private String orderCode;
+ private String processId;
+ private String sampleModel;
+ private String sampleName;
+ private String sampleNo;
+ private String taskId;
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getApprovalStatusName() {
+ return approvalStatusName;
+ }
+
+ public void setApprovalStatusName(String approvalStatusName) {
+ this.approvalStatusName = approvalStatusName;
+ }
+
+ public String getCalibrationMajor() {
+ return calibrationMajor;
+ }
+
+ public void setCalibrationMajor(String calibrationMajor) {
+ this.calibrationMajor = calibrationMajor;
+ }
+
+ public String getCertificateReportCode() {
+ return certificateReportCode;
+ }
+
+ public void setCertificateReportCode(String certificateReportCode) {
+ this.certificateReportCode = certificateReportCode;
+ }
+
+ public String getCertificateReportName() {
+ return certificateReportName;
+ }
+
+ public void setCertificateReportName(String certificateReportName) {
+ this.certificateReportName = certificateReportName;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getDecisionItem() {
+ return decisionItem;
+ }
+
+ public void setDecisionItem(String decisionItem) {
+ this.decisionItem = decisionItem;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getManufacturingNo() {
+ return manufacturingNo;
+ }
+
+ public void setManufacturingNo(String manufacturingNo) {
+ this.manufacturingNo = manufacturingNo;
+ }
+
+ public String getMeasurePersonId() {
+ return measurePersonId;
+ }
+
+ public void setMeasurePersonId(String measurePersonId) {
+ this.measurePersonId = measurePersonId;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ 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 getTaskId() {
+ return taskId;
+ }
+
+ public void setTaskId(String taskId) {
+ this.taskId = taskId;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 1c6a830..2d50d0a 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -61,7 +61,4 @@
const val File_SERVER_URL = "http://111.198.10.15:21408"
const val ACCOUNT = "account"
const val PASSWORD = "password"
-
- //计量文件表单ID
- const val FORM_ID = "jlglwjsp"
}
\ No newline at end of file
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 f6e498f..b0dec00 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
@@ -334,4 +334,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取证书报告列表
+ */
+ @POST("/business/certificateReport/approval/listPage")
+ suspend fun getCertificateReportList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): 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 0f2a9fd..cef55ec 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
@@ -736,7 +736,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", LocaleConstant.FORM_ID)
+ param.addProperty("formId", "jlglwjsp")
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -761,4 +761,43 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取证书报告列表
+ */
+ suspend fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("formId", "ywglzsbg")
+ param.addProperty("approvalStatus", approvalStatus)
+ param.addProperty("certificateReportCode", certificateReportCode)
+ param.addProperty("customerName", customerName)
+ param.addProperty("measureCategory", measureCategory)
+ param.addProperty("orderCode", orderCode)
+ param.addProperty("sampleName", sampleName)
+ param.addProperty("sampleNo", sampleNo)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getCertificateReportList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
new file mode 100644
index 0000000..2baefd2
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportActivity.kt
@@ -0,0 +1,57 @@
+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.certificate.CertificateReportFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.base.KotlinBaseActivity
+import kotlinx.android.synthetic.main.activity_certificate.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class CertificateReportActivity : KotlinBaseActivity() {
+
+ private val pageTitles = arrayOf(
+ "草稿箱",
+ "待审批",
+ "审批中",
+ "已通过",
+ "未通过",
+ "已取消",
+ "非草稿",
+ "未通过",
+ "可打印"
+ )
+ private var fragmentPages: ArrayList = ArrayList()
+
+ init {
+ pageTitles.indices.forEach {
+ fragmentPages.add(CertificateReportFragment((it + 1).toString()))
+ }
+ }
+
+ override fun initData() {
+ viewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, pageTitles
+ )
+ //绑定
+ topTabLayout.setupWithViewPager(viewPager)
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+
+ override fun initLayoutView(): Int = R.layout.activity_certificate
+
+ 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/vm/CertificateViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
new file mode 100644
index 0000000..735e530
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/vm/CertificateViewModel.kt
@@ -0,0 +1,62 @@
+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.CertificateModel
+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
+import com.pengxh.kt.lite.vm.LoadState
+
+/**
+ * 证书报告 VM
+ * */
+class CertificateViewModel : BaseViewModel() {
+
+ private val gson by lazy { Gson() }
+ val certificateList = MutableLiveData()
+
+ fun getCertificateReportList(
+ approvalStatus: String,
+ certificateReportCode: String,
+ customerName: String,
+ measureCategory: String,
+ orderCode: String,
+ sampleName: String,
+ sampleNo: String,
+ ids: Array,
+ offset: Int
+ ) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getCertificateReportList(
+ approvalStatus,
+ certificateReportCode,
+ customerName,
+ measureCategory,
+ orderCode,
+ sampleName,
+ sampleNo,
+ ids,
+ offset
+ )
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ certificateList.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())
+ it.printStackTrace()
+ })
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_certificate.xml b/app/src/main/res/layout/activity_certificate.xml
new file mode 100644
index 0000000..87fa531
--- /dev/null
+++ b/app/src/main/res/layout/activity_certificate.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_certificate_report.xml b/app/src/main/res/layout/fragment_certificate_report.xml
new file mode 100644
index 0000000..772d499
--- /dev/null
+++ b/app/src/main/res/layout/fragment_certificate_report.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_certificate_rv_l.xml b/app/src/main/res/layout/item_certificate_rv_l.xml
new file mode 100644
index 0000000..2e39f0c
--- /dev/null
+++ b/app/src/main/res/layout/item_certificate_rv_l.xml
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file