车辆信息回显

This commit is contained in:
lijia 2024-05-11 17:31:12 +08:00
parent be767e7d46
commit 77448b0e90
9 changed files with 172 additions and 54 deletions

View File

@ -8,6 +8,6 @@ import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
* @Date 2024/4/27 15:48
* @Description TODO
*/
open interface OnCarInfoInterface {
fun interface OnCarInfoInterface {
fun onResutl(upDrivingInfoBean: UpDrivingInfoBean)
}

View File

@ -415,6 +415,15 @@ interface Api {
@POST(BASE_URL + "driver/car/addTrailer")
fun addTrailer(@Body upDrivingInfoBean: UpDrivingInfoBean): Observable<CommonResponseBean<Any>>
/**
*
* 绑定挂车
* */
@POST(BASE_URL + "driver/car/bindTraiiler")
fun bindTraiiler(@Body carBean: CarBean): Observable<CommonResponseBean<Any>>
/**
*
* 修改挂车信息

View File

@ -1,6 +1,7 @@
package com.arpa.hndahesudintocctmsdriver.ui.account.authperson
import android.os.Bundle
import android.view.View
import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.CarBean
@ -25,6 +26,7 @@ import com.arpa.mylibrary.utils.TimeUtil
import com.arpa.mylibrary.utils.ToastUtils
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import kotlin.contracts.Returns
/**
* @ClassName AuthRoleActivity
@ -140,11 +142,20 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
ToastUtils.showToast(mContext, "请选择正确证件照片")
return@ocrDriveing
}
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, binding.ivFront)
upDrivingInfoBean.licenseFaceUrl = picPath.picPath//行驶证照片(正面)
result?.data?.face?.data?.let {
var isHave = false
getCarInfoByCarNum(it.licensePlateNumber) { upDrivingInfoBean->
initViewByData(upDrivingInfoBean)
isHave = true
return@getCarInfoByCarNum
}
if (isHave)
return@ocrDriveing
var isHasFow = it.vehicleType.contains("牵引车")
upDrivingInfoBean.isTrailer = if (isHasFow) "1" else "0"//是否有挂车(0否 1是)
@ -152,8 +163,9 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
engineNo = it.engineNumber
vinCode = it.vinCode
model = it.model
licenseRegisterDate = TimeUtil.changeDateNoneFormat(it.registrationDate,"yyyy-MM-dd")
licenseIssueDate = TimeUtil.changeDateNoneFormat(it.issueDate,"yyyy-MM-dd")
licenseRegisterDate =
TimeUtil.changeDateNoneFormat(it.registrationDate, "yyyy-MM-dd")
licenseIssueDate = TimeUtil.changeDateNoneFormat(it.issueDate, "yyyy-MM-dd")
address = it.address
}
@ -232,7 +244,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
//车长
if (it.overallDimension.contains("mm")) {
var overall = it.overallDimension.replace("mm", "")
var splits = overall.split("×","x","X")
var splits = overall.split("×", "x", "X")
if (splits.size == 3) {
upDrivingInfoBean.carLong =
if (splits[0].toIntOrNull() != null) splits[0] else ""
@ -277,7 +289,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
useNature = binding.etUseNature.text.trim().toString()
}
if(upDrivingInfoBean.vehicleNum.contains("")){
if (upDrivingInfoBean.vehicleNum.contains("")) {
showToast("车牌号码不合规")
return
}
@ -308,7 +320,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
if (t.data==null){
if (t.data == null) {
DataManager.getInstance().addCar(upDrivingInfoBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
@ -338,7 +350,7 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
}
})
)
}else{
} else {
DataManager.getInstance().bindCar(CarBean(carId = t.data.carId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
@ -364,15 +376,50 @@ class AuthDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
* 根据车牌号查询车辆信任
* @param carNum String
*/
private fun getCarInfoByCarNum(carNum: String, onCarInfoInterface: OnCarInfoInterface) {
private fun getCarInfoByCarNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getCarByCarVehicleNum(carNum)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
if (t.data == null)
return
onCarInfoInterface.onResutl(t.data)
}
}))
}
private fun initViewByData(data: UpDrivingInfoBean) {
upDrivingInfoBean = data
binding.run {
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.carUrl, 12, ivCar)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.roadLicensePhotoUrl, 12, ivRoadFront)
etCarNum.setText(data.vehicleNum)
backLicCarNum = data.vehicleNum
tvCarType.text = data.vehicleType
etOwner.setText(data.owner)
etUseNature.setText(data.useNature)
tvCarColor.text = data.plateColor
tvEnd.text = data.licenseValidity
etID.setText(data.roadLicense)
tvDate.text = data.roadLicenseValidity
}
}
}

View File

@ -10,6 +10,7 @@ import com.arpa.hndahesudintocctmsdriver.net.DataManager
import com.arpa.hndahesudintocctmsdriver.net.RxHttpCallBack
import com.arpa.hndahesudintocctmsdriver.oss.OssServiceUtil
import com.arpa.hndahesudintocctmsdriver.utils.CommonPopUtils
import com.arpa.hndahesudintocctmsdriver.utils.OcrUtils
import com.arpa.mylibrary.utils.PickerUtils
import com.arpa.mylibrary.base.BaseActivity
import com.arpa.mylibrary.net.CommonResponseBean
@ -52,24 +53,16 @@ class AuthQualificationActivity : BaseActivity<ActivityAuthQualificationBinding>
ivFront.setOnClickListener {
if (upQuaInfo.qualificationCertificatePhotoUrl.isNullOrEmpty()){
PopsUtils.getInstance().showSimSelPic(mContext) {
var data = it[0]
ossServiceUtil.asyncPutImage(data.realPath, this@AuthQualificationActivity)
ossServiceUtil.setResultCallBack { data, oldPath ->
upQuaInfo.qualificationCertificatePhotoUrl = oldPath
OcrUtils.getInstance()
.noOcrUpPic(mContext, this@AuthQualificationActivity) { picPath, _ ->
ImageLoader.getInstance()
.loadRoundImage(mContext, picPath.locPic, 12, ivFront)
upQuaInfo.qualificationCertificatePhotoUrl = picPath.picPath
binding.tvChangeFront.visibility = View.VISIBLE
runOnUiThread {
ImageLoader.getInstance()
.loadRoundImage(mContext, it[0].realPath, 12, ivFront)
}
}
}
}else{
CommonPopUtils.getInstance().seeBigPic(mContext,ivFront,upQuaInfo.qualificationCertificatePhotoUrl)
}
}
}
}

View File

@ -1,10 +1,13 @@
package com.arpa.hndahesudintocctmsdriver.ui.account.authperson
import android.os.Bundle
import android.view.View
import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.CarBean
import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor
import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
import com.arpa.hndahesudintocctmsdriver.callback.OnCarInfoInterface
import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthTrailerBinding
import com.arpa.hndahesudintocctmsdriver.net.BaseObserver
import com.arpa.hndahesudintocctmsdriver.net.DataManager
@ -115,6 +118,16 @@ class AuthTrailerActivity : BaseActivity<ActivityAuthTrailerBinding>() {
result?.data?.face?.data?.let {
var isHave = false
getTrailerByVehicleNum(it.licensePlateNumber) { upDrivingInfoBean->
initViewByData(upDrivingInfoBean)
isHave = true
return@getTrailerByVehicleNum
}
if (isHave)
return@ocrDriveing
upDrivingInfoBean.run {
engineNo = it.engineNumber
vinCode = it.vinCode
@ -241,14 +254,83 @@ class AuthTrailerActivity : BaseActivity<ActivityAuthTrailerBinding>() {
}
fun upApi() {
DataManager.getInstance().addTrailer(upDrivingInfoBean)
DataManager.getInstance().getTrailerByVehicleNum(upDrivingInfoBean.vehicleNum)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java)
if (t.data == null) {
DataManager.getInstance().addTrailer(upDrivingInfoBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java)
}
}))
}else{
DataManager.getInstance().bindTraiiler(CarBean(carId = carId, trailerId = t.data.trailerId))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<Any>() {
override fun onSuccess(t: CommonResponseBean<Any>) {
super.onSuccess(t)
ActivityUtils.startActivity(mContext, AuthSuccActivity::class.java)
}
}))
}
}
}))
}
/**
* 根据车牌号查询车辆信任
* @param carNum String
*/
private fun getTrailerByVehicleNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getTrailerByVehicleNum(carNum)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
if (t.data == null)
return
onCarInfoInterface.onResutl(t.data)
}
}))
}
private fun initViewByData(data: UpDrivingInfoBean) {
upDrivingInfoBean = data
binding.run {
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, data.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
etHdzzz.setText(data.approvedLoad)
etCarNum.setText(data.vehicleNum)
tvCarType.text = data.vehicleType
etUseNature.setText(data.useNature)
tvCarColor.text = data.trailerPlateColor
// tvEnd.text = data.licenseValidity
backLicCarNum = data.vehicleNum
}
}
}

View File

@ -6,6 +6,7 @@ import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.base.AppConfig
import com.arpa.hndahesudintocctmsdriver.bean.DiCarColor
import com.arpa.hndahesudintocctmsdriver.bean.UpDrivingInfoBean
import com.arpa.hndahesudintocctmsdriver.callback.OnCarInfoInterface
import com.arpa.hndahesudintocctmsdriver.databinding.ActivityAuthDrivingBinding
import com.arpa.hndahesudintocctmsdriver.net.BaseObserver
import com.arpa.hndahesudintocctmsdriver.net.DataManager
@ -355,33 +356,19 @@ class EditDrivingActivity : BaseActivity<ActivityAuthDrivingBinding>() {
* 根据车牌号查询车辆信任
* @param carNum String
*/
private fun getCarInfoByCarNum(carNum: String) {
private fun getCarInfoByCarNum(
carNum: String,
onCarInfoInterface: OnCarInfoInterface = OnCarInfoInterface { }
) {
DataManager.getInstance().getCarByCarVehicleNum(carNum)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(BaseObserver(mContext, object : RxHttpCallBack<UpDrivingInfoBean>() {
override fun onSuccess(t: CommonResponseBean<UpDrivingInfoBean>) {
super.onSuccess(t)
t.data.let {
binding.run {
ImageLoader.getInstance()
.loadRoundImage(mContext, it.licenseFaceUrl, 12, ivFront)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.licenseBackUrl, 12, ivBack)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.carUrl, 12, ivCar)
ImageLoader.getInstance()
.loadRoundImage(mContext, it.roadLicensePhotoUrl, 12, ivRoadFront)
etCarNum.setText(it.vehicleNum)
etOwner.setText(it.owner)
tvCarType.text = it.vehicleType
etUseNature.setText(it.useNature)
etID.setText(it.roadLicense)
tvDate.text = it.roadLicenseValidity
}
}
if (t.data == null)
return
onCarInfoInterface.onResutl(t.data)
}
}))
}

View File

@ -220,7 +220,7 @@ class CarDetailActivity : BaseActivity<ActivityCarDetailBinding>(), View.OnClick
}
}
if (data.roadLicense.isNullOrEmpty()) {
if (data.roadLicensePhotoUrl.isNullOrEmpty()) {
tvQualiInfo.text = "证件缺失将无法进行接单"
missInfo =
if (missInfo.isNullOrEmpty()) missInfo.plus("道路运输许可证") else missInfo.plus(
@ -250,9 +250,9 @@ class CarDetailActivity : BaseActivity<ActivityCarDetailBinding>(), View.OnClick
btnDriver.visibility =
if (data.trailerVehicleNum.isNullOrEmpty()) View.VISIBLE else View.GONE
llQua.visibility =
if (data.roadLicense.isNullOrEmpty()) View.GONE else View.VISIBLE
if (data.roadLicensePhotoUrl.isNullOrEmpty()) View.GONE else View.VISIBLE
btnQua.visibility =
if (data.roadLicense.isNullOrEmpty()) View.VISIBLE else View.GONE
if (data.roadLicensePhotoUrl.isNullOrEmpty()) View.VISIBLE else View.GONE
circleBarView2.progress = doneInfoCount * 100 / allInfoCount

View File

@ -228,7 +228,7 @@ class PersonInfoActivity : BaseActivity<ActivityPersonInfoBinding>(), View.OnCli
} else {
cvQua.visibility = View.VISIBLE
allInfoCount = 5
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) {
if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) {
tvQualiInfo.text = "证件缺失将无法进行接单"
missInfo =
if (missInfo.isNullOrEmpty()) missInfo.plus("从业资格证") else missInfo.plus(
@ -284,9 +284,9 @@ class PersonInfoActivity : BaseActivity<ActivityPersonInfoBinding>(), View.OnCli
llDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.GONE else View.VISIBLE
btnDriver.visibility = if (data.licenseNo.isNullOrEmpty()) View.VISIBLE else View.GONE
llQua.visibility =
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) View.GONE else View.VISIBLE
if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) View.GONE else View.VISIBLE
btnQua.visibility =
if (data.qualificationCertificateEffectiveEnd.isNullOrEmpty()) View.VISIBLE else View.GONE
if (data.qualificationCertificatePhotoUrl.isNullOrEmpty()) View.VISIBLE else View.GONE
llBank.visibility =
if (data.driverBankcardNumber.isNullOrEmpty()) View.GONE else View.VISIBLE

View File

@ -97,7 +97,7 @@ class PopNorBottomPic(
.setCompressEngine(ImageFileCompressEngine())
.isPreviewImage(true)
.isMaxSelectEnabledMask(true)
// .setMaxSelectNum(1)
.setMaxSelectNum(1)
// .setSelectionMode(SelectModeConfig.SINGLE)
// .isDirectReturnSingle(true)
.isGif(false)