diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt index 5b851d0..3ef79e2 100644 --- a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt +++ b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt @@ -9,19 +9,25 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R import com.casic.xz.meterage.model.ApprovalProcessModel +import com.casic.xz.meterage.model.CommentModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.toJson -import org.json.JSONObject +import java.lang.reflect.Type class ApprovalProcessAdapter( - context: Context, + private val context: Context, private val dataRows: List>, private val lastRow: ApprovalProcessModel.DataModel ) : RecyclerView.Adapter() { private val kTag = "ApprovalProcessAdapter" + private val gson by lazy { Gson() } private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var type: Type = object : TypeToken() {}.type override fun getItemCount(): Int = dataRows.size @@ -47,10 +53,19 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + if (comment.contains("状态未知")) { + viewHolder.setTextColor( + R.id.statusView, R.color.red.convertColor(context) + ) + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) @@ -79,10 +94,13 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt index 5b851d0..3ef79e2 100644 --- a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt +++ b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt @@ -9,19 +9,25 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R import com.casic.xz.meterage.model.ApprovalProcessModel +import com.casic.xz.meterage.model.CommentModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.toJson -import org.json.JSONObject +import java.lang.reflect.Type class ApprovalProcessAdapter( - context: Context, + private val context: Context, private val dataRows: List>, private val lastRow: ApprovalProcessModel.DataModel ) : RecyclerView.Adapter() { private val kTag = "ApprovalProcessAdapter" + private val gson by lazy { Gson() } private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var type: Type = object : TypeToken() {}.type override fun getItemCount(): Int = dataRows.size @@ -47,10 +53,19 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + if (comment.contains("状态未知")) { + viewHolder.setTextColor( + R.id.statusView, R.color.red.convertColor(context) + ) + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) @@ -79,10 +94,13 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt index bf851c0..e03acde 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt @@ -2,55 +2,65 @@ import android.graphics.Color import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.extensions.watchAttachFile -import com.casic.xz.meterage.model.kt.CertificateDetailModel +import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_certificate_basic_information.* -class BasicInformationFragment(private val data: CertificateDetailModel.DataModel) : - KotlinBaseFragment() { +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var certificateViewModel: CertificateViewModel override fun initData() { - val businessOriginal = data.businessOriginalRecord!! + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.getCertificateReportDetail(id) + certificateViewModel.certificateDetail.observe(this) { + if (it.code == 200) { + val data = it.data!! - reportCodeView.text = data.certificateReportCode - originalCodeView.text = businessOriginal.originalRecordCode - checkCategoryView.text = businessOriginal.measureCategoryName + val businessOriginal = data.businessOriginalRecord!! -// basisFileView.text = businessOriginal.fileList + reportCodeView.text = data.certificateReportCode + originalCodeView.text = businessOriginal.originalRecordCode + checkCategoryView.text = businessOriginal.measureCategoryName - val sampleInfo = businessOriginal.customerSampleInfo - sampleCodeView.text = sampleInfo?.sampleNo - sampleNameView.text = sampleInfo?.sampleName - manufacturingCodeView.text = sampleInfo?.manufacturingNo - modelView.text = sampleInfo?.sampleModel - entrustCodeView.text = sampleInfo?.customerNo - entrustNameView.text = sampleInfo?.customerName - entrustContactView.text = sampleInfo?.phone - entrustEmailView.text = sampleInfo?.postalCode - entrustAddressView.text = sampleInfo?.customerAddress - senderView.text = sampleInfo?.deliverer - senderContactView.text = sampleInfo?.delivererTel - checkTypeView.text = sampleInfo?.measureContent - remarkView.text = sampleInfo?.remark +// basisFileView.text = businessOriginal.fileList - estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime - estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime + val sampleInfo = businessOriginal.customerSampleInfo + sampleCodeView.text = sampleInfo?.sampleNo + sampleNameView.text = sampleInfo?.sampleName + manufacturingCodeView.text = sampleInfo?.manufacturingNo + modelView.text = sampleInfo?.sampleModel + entrustCodeView.text = sampleInfo?.customerNo + entrustNameView.text = sampleInfo?.customerName + entrustContactView.text = sampleInfo?.phone + entrustEmailView.text = sampleInfo?.postalCode + entrustAddressView.text = sampleInfo?.customerAddress + senderView.text = sampleInfo?.deliverer + senderContactView.text = sampleInfo?.delivererTel + checkTypeView.text = sampleInfo?.measureContent + remarkView.text = sampleInfo?.remark - if (data.certificateReportFile.isNullOrBlank()) { - reportFileView.text = "暂无附件" - } else { - val reportFileName = data.certificateReportFile + estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime + estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime - reportFileView.text = reportFileName - val textPaint = reportFileView.paint - textPaint.flags = Paint.UNDERLINE_TEXT_FLAG - textPaint.isAntiAlias = true - reportFileView.setTextColor(Color.BLUE) + if (data.certificateReportFile.isNullOrBlank()) { + reportFileView.text = "暂无附件" + } else { + val reportFileName = data.certificateReportFile - reportFileView.setOnClickListener { - reportFileName.watchAttachFile(requireContext()) + reportFileView.text = reportFileName + val textPaint = reportFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + reportFileView.setTextColor(Color.BLUE) + + reportFileView.setOnClickListener { + reportFileName.watchAttachFile(requireContext()) + } + } } } } diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt index 5b851d0..3ef79e2 100644 --- a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt +++ b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt @@ -9,19 +9,25 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R import com.casic.xz.meterage.model.ApprovalProcessModel +import com.casic.xz.meterage.model.CommentModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.toJson -import org.json.JSONObject +import java.lang.reflect.Type class ApprovalProcessAdapter( - context: Context, + private val context: Context, private val dataRows: List>, private val lastRow: ApprovalProcessModel.DataModel ) : RecyclerView.Adapter() { private val kTag = "ApprovalProcessAdapter" + private val gson by lazy { Gson() } private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var type: Type = object : TypeToken() {}.type override fun getItemCount(): Int = dataRows.size @@ -47,10 +53,19 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + if (comment.contains("状态未知")) { + viewHolder.setTextColor( + R.id.statusView, R.color.red.convertColor(context) + ) + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) @@ -79,10 +94,13 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt index bf851c0..e03acde 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt @@ -2,55 +2,65 @@ import android.graphics.Color import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.extensions.watchAttachFile -import com.casic.xz.meterage.model.kt.CertificateDetailModel +import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_certificate_basic_information.* -class BasicInformationFragment(private val data: CertificateDetailModel.DataModel) : - KotlinBaseFragment() { +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var certificateViewModel: CertificateViewModel override fun initData() { - val businessOriginal = data.businessOriginalRecord!! + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.getCertificateReportDetail(id) + certificateViewModel.certificateDetail.observe(this) { + if (it.code == 200) { + val data = it.data!! - reportCodeView.text = data.certificateReportCode - originalCodeView.text = businessOriginal.originalRecordCode - checkCategoryView.text = businessOriginal.measureCategoryName + val businessOriginal = data.businessOriginalRecord!! -// basisFileView.text = businessOriginal.fileList + reportCodeView.text = data.certificateReportCode + originalCodeView.text = businessOriginal.originalRecordCode + checkCategoryView.text = businessOriginal.measureCategoryName - val sampleInfo = businessOriginal.customerSampleInfo - sampleCodeView.text = sampleInfo?.sampleNo - sampleNameView.text = sampleInfo?.sampleName - manufacturingCodeView.text = sampleInfo?.manufacturingNo - modelView.text = sampleInfo?.sampleModel - entrustCodeView.text = sampleInfo?.customerNo - entrustNameView.text = sampleInfo?.customerName - entrustContactView.text = sampleInfo?.phone - entrustEmailView.text = sampleInfo?.postalCode - entrustAddressView.text = sampleInfo?.customerAddress - senderView.text = sampleInfo?.deliverer - senderContactView.text = sampleInfo?.delivererTel - checkTypeView.text = sampleInfo?.measureContent - remarkView.text = sampleInfo?.remark +// basisFileView.text = businessOriginal.fileList - estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime - estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime + val sampleInfo = businessOriginal.customerSampleInfo + sampleCodeView.text = sampleInfo?.sampleNo + sampleNameView.text = sampleInfo?.sampleName + manufacturingCodeView.text = sampleInfo?.manufacturingNo + modelView.text = sampleInfo?.sampleModel + entrustCodeView.text = sampleInfo?.customerNo + entrustNameView.text = sampleInfo?.customerName + entrustContactView.text = sampleInfo?.phone + entrustEmailView.text = sampleInfo?.postalCode + entrustAddressView.text = sampleInfo?.customerAddress + senderView.text = sampleInfo?.deliverer + senderContactView.text = sampleInfo?.delivererTel + checkTypeView.text = sampleInfo?.measureContent + remarkView.text = sampleInfo?.remark - if (data.certificateReportFile.isNullOrBlank()) { - reportFileView.text = "暂无附件" - } else { - val reportFileName = data.certificateReportFile + estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime + estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime - reportFileView.text = reportFileName - val textPaint = reportFileView.paint - textPaint.flags = Paint.UNDERLINE_TEXT_FLAG - textPaint.isAntiAlias = true - reportFileView.setTextColor(Color.BLUE) + if (data.certificateReportFile.isNullOrBlank()) { + reportFileView.text = "暂无附件" + } else { + val reportFileName = data.certificateReportFile - reportFileView.setOnClickListener { - reportFileName.watchAttachFile(requireContext()) + reportFileView.text = reportFileName + val textPaint = reportFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + reportFileView.setTextColor(Color.BLUE) + + reportFileView.setOnClickListener { + reportFileName.watchAttachFile(requireContext()) + } + } } } } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt index 2d5ac61..d65b528 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt @@ -3,23 +3,23 @@ import com.casic.xz.meterage.R import com.pengxh.kt.lite.base.KotlinBaseFragment -class ExceptionReportFragment :KotlinBaseFragment(){ +class ExceptionReportFragment : KotlinBaseFragment() { override fun initData() { - + } override fun initEvent() { - + } override fun initLayoutView(): Int = R.layout.fragment_certificate_exception_report override fun observeRequestState() { - + } override fun setupTopBarLayout() { - + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt index 5b851d0..3ef79e2 100644 --- a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt +++ b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt @@ -9,19 +9,25 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R import com.casic.xz.meterage.model.ApprovalProcessModel +import com.casic.xz.meterage.model.CommentModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.toJson -import org.json.JSONObject +import java.lang.reflect.Type class ApprovalProcessAdapter( - context: Context, + private val context: Context, private val dataRows: List>, private val lastRow: ApprovalProcessModel.DataModel ) : RecyclerView.Adapter() { private val kTag = "ApprovalProcessAdapter" + private val gson by lazy { Gson() } private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var type: Type = object : TypeToken() {}.type override fun getItemCount(): Int = dataRows.size @@ -47,10 +53,19 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + if (comment.contains("状态未知")) { + viewHolder.setTextColor( + R.id.statusView, R.color.red.convertColor(context) + ) + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) @@ -79,10 +94,13 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt index bf851c0..e03acde 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt @@ -2,55 +2,65 @@ import android.graphics.Color import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.extensions.watchAttachFile -import com.casic.xz.meterage.model.kt.CertificateDetailModel +import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_certificate_basic_information.* -class BasicInformationFragment(private val data: CertificateDetailModel.DataModel) : - KotlinBaseFragment() { +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var certificateViewModel: CertificateViewModel override fun initData() { - val businessOriginal = data.businessOriginalRecord!! + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.getCertificateReportDetail(id) + certificateViewModel.certificateDetail.observe(this) { + if (it.code == 200) { + val data = it.data!! - reportCodeView.text = data.certificateReportCode - originalCodeView.text = businessOriginal.originalRecordCode - checkCategoryView.text = businessOriginal.measureCategoryName + val businessOriginal = data.businessOriginalRecord!! -// basisFileView.text = businessOriginal.fileList + reportCodeView.text = data.certificateReportCode + originalCodeView.text = businessOriginal.originalRecordCode + checkCategoryView.text = businessOriginal.measureCategoryName - val sampleInfo = businessOriginal.customerSampleInfo - sampleCodeView.text = sampleInfo?.sampleNo - sampleNameView.text = sampleInfo?.sampleName - manufacturingCodeView.text = sampleInfo?.manufacturingNo - modelView.text = sampleInfo?.sampleModel - entrustCodeView.text = sampleInfo?.customerNo - entrustNameView.text = sampleInfo?.customerName - entrustContactView.text = sampleInfo?.phone - entrustEmailView.text = sampleInfo?.postalCode - entrustAddressView.text = sampleInfo?.customerAddress - senderView.text = sampleInfo?.deliverer - senderContactView.text = sampleInfo?.delivererTel - checkTypeView.text = sampleInfo?.measureContent - remarkView.text = sampleInfo?.remark +// basisFileView.text = businessOriginal.fileList - estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime - estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime + val sampleInfo = businessOriginal.customerSampleInfo + sampleCodeView.text = sampleInfo?.sampleNo + sampleNameView.text = sampleInfo?.sampleName + manufacturingCodeView.text = sampleInfo?.manufacturingNo + modelView.text = sampleInfo?.sampleModel + entrustCodeView.text = sampleInfo?.customerNo + entrustNameView.text = sampleInfo?.customerName + entrustContactView.text = sampleInfo?.phone + entrustEmailView.text = sampleInfo?.postalCode + entrustAddressView.text = sampleInfo?.customerAddress + senderView.text = sampleInfo?.deliverer + senderContactView.text = sampleInfo?.delivererTel + checkTypeView.text = sampleInfo?.measureContent + remarkView.text = sampleInfo?.remark - if (data.certificateReportFile.isNullOrBlank()) { - reportFileView.text = "暂无附件" - } else { - val reportFileName = data.certificateReportFile + estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime + estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime - reportFileView.text = reportFileName - val textPaint = reportFileView.paint - textPaint.flags = Paint.UNDERLINE_TEXT_FLAG - textPaint.isAntiAlias = true - reportFileView.setTextColor(Color.BLUE) + if (data.certificateReportFile.isNullOrBlank()) { + reportFileView.text = "暂无附件" + } else { + val reportFileName = data.certificateReportFile - reportFileView.setOnClickListener { - reportFileName.watchAttachFile(requireContext()) + reportFileView.text = reportFileName + val textPaint = reportFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + reportFileView.setTextColor(Color.BLUE) + + reportFileView.setOnClickListener { + reportFileName.watchAttachFile(requireContext()) + } + } } } } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt index 2d5ac61..d65b528 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt @@ -3,23 +3,23 @@ import com.casic.xz.meterage.R import com.pengxh.kt.lite.base.KotlinBaseFragment -class ExceptionReportFragment :KotlinBaseFragment(){ +class ExceptionReportFragment : KotlinBaseFragment() { override fun initData() { - + } override fun initEvent() { - + } override fun initLayoutView(): Int = R.layout.fragment_certificate_exception_report override fun observeRequestState() { - + } override fun setupTopBarLayout() { - + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java b/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java new file mode 100644 index 0000000..f9263ec --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java @@ -0,0 +1,23 @@ +package com.casic.xz.meterage.model; + +public class CommentModel { + + private String comment; + private String type; + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt index 5b851d0..3ef79e2 100644 --- a/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt +++ b/app/src/main/java/com/casic/xz/meterage/adapter/ApprovalProcessAdapter.kt @@ -9,19 +9,25 @@ import androidx.recyclerview.widget.RecyclerView import com.casic.xz.meterage.R import com.casic.xz.meterage.model.ApprovalProcessModel +import com.casic.xz.meterage.model.CommentModel +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder +import com.pengxh.kt.lite.extensions.convertColor import com.pengxh.kt.lite.extensions.toJson -import org.json.JSONObject +import java.lang.reflect.Type class ApprovalProcessAdapter( - context: Context, + private val context: Context, private val dataRows: List>, private val lastRow: ApprovalProcessModel.DataModel ) : RecyclerView.Adapter() { private val kTag = "ApprovalProcessAdapter" + private val gson by lazy { Gson() } private var layoutInflater: LayoutInflater = LayoutInflater.from(context) + private var type: Type = object : TypeToken() {}.type override fun getItemCount(): Int = dataRows.size @@ -47,10 +53,19 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + if (comment.contains("状态未知")) { + viewHolder.setTextColor( + R.id.statusView, R.color.red.convertColor(context) + ) + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) @@ -79,10 +94,13 @@ override fun convertView( viewHolder: ViewHolder, position: Int, item: ApprovalProcessModel.DataModel ) { - val json = item.comment.toJson() - //{"comment":"同意","type":"1"} - val jsonObject = JSONObject(json) - viewHolder.setText(R.id.statusView, jsonObject.getString("comment")) + val comment = if (item.comment is String) { + "状态未知" + } else { + gson.fromJson(item.comment.toJson(), type).comment + } + + viewHolder.setText(R.id.statusView, comment) .setText(R.id.operatorNameView, item.assigneeName) .setText(R.id.deptNameView, item.deptName) .setText(R.id.operateTimeView, item.finishTime) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt index bf851c0..e03acde 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/BasicInformationFragment.kt @@ -2,55 +2,65 @@ import android.graphics.Color import android.graphics.Paint +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.extensions.watchAttachFile -import com.casic.xz.meterage.model.kt.CertificateDetailModel +import com.casic.xz.meterage.vm.CertificateViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_certificate_basic_information.* -class BasicInformationFragment(private val data: CertificateDetailModel.DataModel) : - KotlinBaseFragment() { +class BasicInformationFragment(private val id: String) : KotlinBaseFragment() { + + private lateinit var certificateViewModel: CertificateViewModel override fun initData() { - val businessOriginal = data.businessOriginalRecord!! + certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] + certificateViewModel.getCertificateReportDetail(id) + certificateViewModel.certificateDetail.observe(this) { + if (it.code == 200) { + val data = it.data!! - reportCodeView.text = data.certificateReportCode - originalCodeView.text = businessOriginal.originalRecordCode - checkCategoryView.text = businessOriginal.measureCategoryName + val businessOriginal = data.businessOriginalRecord!! -// basisFileView.text = businessOriginal.fileList + reportCodeView.text = data.certificateReportCode + originalCodeView.text = businessOriginal.originalRecordCode + checkCategoryView.text = businessOriginal.measureCategoryName - val sampleInfo = businessOriginal.customerSampleInfo - sampleCodeView.text = sampleInfo?.sampleNo - sampleNameView.text = sampleInfo?.sampleName - manufacturingCodeView.text = sampleInfo?.manufacturingNo - modelView.text = sampleInfo?.sampleModel - entrustCodeView.text = sampleInfo?.customerNo - entrustNameView.text = sampleInfo?.customerName - entrustContactView.text = sampleInfo?.phone - entrustEmailView.text = sampleInfo?.postalCode - entrustAddressView.text = sampleInfo?.customerAddress - senderView.text = sampleInfo?.deliverer - senderContactView.text = sampleInfo?.delivererTel - checkTypeView.text = sampleInfo?.measureContent - remarkView.text = sampleInfo?.remark +// basisFileView.text = businessOriginal.fileList - estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime - estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime + val sampleInfo = businessOriginal.customerSampleInfo + sampleCodeView.text = sampleInfo?.sampleNo + sampleNameView.text = sampleInfo?.sampleName + manufacturingCodeView.text = sampleInfo?.manufacturingNo + modelView.text = sampleInfo?.sampleModel + entrustCodeView.text = sampleInfo?.customerNo + entrustNameView.text = sampleInfo?.customerName + entrustContactView.text = sampleInfo?.phone + entrustEmailView.text = sampleInfo?.postalCode + entrustAddressView.text = sampleInfo?.customerAddress + senderView.text = sampleInfo?.deliverer + senderContactView.text = sampleInfo?.delivererTel + checkTypeView.text = sampleInfo?.measureContent + remarkView.text = sampleInfo?.remark - if (data.certificateReportFile.isNullOrBlank()) { - reportFileView.text = "暂无附件" - } else { - val reportFileName = data.certificateReportFile + estimateServedTimeView.text = businessOriginal.businessOrder?.planDeliverTime + estimateCompleteTimeView.text = businessOriginal.businessOrder?.requireOverTime - reportFileView.text = reportFileName - val textPaint = reportFileView.paint - textPaint.flags = Paint.UNDERLINE_TEXT_FLAG - textPaint.isAntiAlias = true - reportFileView.setTextColor(Color.BLUE) + if (data.certificateReportFile.isNullOrBlank()) { + reportFileView.text = "暂无附件" + } else { + val reportFileName = data.certificateReportFile - reportFileView.setOnClickListener { - reportFileName.watchAttachFile(requireContext()) + reportFileView.text = reportFileName + val textPaint = reportFileView.paint + textPaint.flags = Paint.UNDERLINE_TEXT_FLAG + textPaint.isAntiAlias = true + reportFileView.setTextColor(Color.BLUE) + + reportFileView.setOnClickListener { + reportFileName.watchAttachFile(requireContext()) + } + } } } } diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt index 2d5ac61..d65b528 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/certificate/ExceptionReportFragment.kt @@ -3,23 +3,23 @@ import com.casic.xz.meterage.R import com.pengxh.kt.lite.base.KotlinBaseFragment -class ExceptionReportFragment :KotlinBaseFragment(){ +class ExceptionReportFragment : KotlinBaseFragment() { override fun initData() { - + } override fun initEvent() { - + } override fun initLayoutView(): Int = R.layout.fragment_certificate_exception_report override fun observeRequestState() { - + } override fun setupTopBarLayout() { - + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java b/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java new file mode 100644 index 0000000..f9263ec --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/CommentModel.java @@ -0,0 +1,23 @@ +package com.casic.xz.meterage.model; + +public class CommentModel { + + private String comment; + private String type; + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt index 1592f3c..f7dce9a 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/home/CertificateReportDetailActivity.kt @@ -20,9 +20,9 @@ import com.pengxh.kt.lite.vm.LoadState import kotlinx.android.synthetic.main.activity_certificate_detail.* -//TODO 查看详情会闪退 class CertificateReportDetailActivity : KotlinBaseActivity() { + private val pageTitles = arrayOf("基础信息", "审批流程", "异常报告") private var fragmentPages: ArrayList = ArrayList() private lateinit var args: ArrayList private lateinit var certificateViewModel: CertificateViewModel @@ -47,25 +47,16 @@ } certificateViewModel = ViewModelProvider(this)[CertificateViewModel::class.java] - certificateViewModel.getCertificateReportDetail(args[1]) - certificateViewModel.certificateDetail.observe(this) { - if (it.code == 200) { - detailModel = it.data!! + fragmentPages.add(BasicInformationFragment(args[1])) + fragmentPages.add(ApprovalProcessFragment(args[3])) + fragmentPages.add(ExceptionReportFragment()) - fragmentPages.add(BasicInformationFragment(detailModel)) - fragmentPages.add(ApprovalProcessFragment(args[3])) - fragmentPages.add(ExceptionReportFragment()) - - val pageTitles = arrayOf("基础信息", "审批流程", "异常报告") - - approvalViewPager.adapter = SubViewPagerAdapter( - supportFragmentManager, fragmentPages, pageTitles - ) - //绑定 - topTabLayout.setupWithViewPager(approvalViewPager) - } - } + approvalViewPager.adapter = SubViewPagerAdapter( + supportFragmentManager, fragmentPages, pageTitles + ) + //绑定 + topTabLayout.setupWithViewPager(approvalViewPager) certificateViewModel.submitResult.observe(this) { if (it.code == 200) {