diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/callback/OnCarInfoInterface.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/callback/OnCarInfoInterface.kt index 48724f0..21007d4 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/callback/OnCarInfoInterface.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/callback/OnCarInfoInterface.kt @@ -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) } \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/net/Api.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/net/Api.kt index ccc4cdc..1ecc93c 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/net/Api.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/net/Api.kt @@ -415,6 +415,15 @@ interface Api { @POST(BASE_URL + "driver/car/addTrailer") fun addTrailer(@Body upDrivingInfoBean: UpDrivingInfoBean): Observable> + /** + * + * 绑定挂车 + * */ + @POST(BASE_URL + "driver/car/bindTraiiler") + fun bindTraiiler(@Body carBean: CarBean): Observable> + + + /** * * 修改挂车信息 diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthDrivingActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthDrivingActivity.kt index a9d3648..ff7de95 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthDrivingActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthDrivingActivity.kt @@ -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() { 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() { 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() { //车长 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() { useNature = binding.etUseNature.text.trim().toString() } - if(upDrivingInfoBean.vehicleNum.contains("挂")){ + if (upDrivingInfoBean.vehicleNum.contains("挂")) { showToast("车牌号码不合规") return } @@ -308,7 +320,7 @@ class AuthDrivingActivity : BaseActivity() { .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { override fun onSuccess(t: CommonResponseBean) { 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() { } }) ) - }else{ + } else { DataManager.getInstance().bindCar(CarBean(carId = t.data.carId)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) @@ -364,15 +376,50 @@ class AuthDrivingActivity : BaseActivity() { * 根据车牌号查询车辆信任 * @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() { override fun onSuccess(t: CommonResponseBean) { 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 + } + + + } } \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthQualificationActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthQualificationActivity.kt index 4a043e4..7e32c21 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthQualificationActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthQualificationActivity.kt @@ -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 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) } - - } } } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthTrailerActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthTrailerActivity.kt index f7de946..f18c2dc 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthTrailerActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/AuthTrailerActivity.kt @@ -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() { 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() { } fun upApi() { - DataManager.getInstance().addTrailer(upDrivingInfoBean) + + DataManager.getInstance().getTrailerByVehicleNum(upDrivingInfoBean.vehicleNum) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { - override fun onSuccess(t: CommonResponseBean) { + .subscribe(BaseObserver(mContext, object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { 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() { + override fun onSuccess(t: CommonResponseBean) { + 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() { + override fun onSuccess(t: CommonResponseBean) { + 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() { + override fun onSuccess(t: CommonResponseBean) { + 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 + + } + + + } } \ No newline at end of file diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/EditDrivingActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/EditDrivingActivity.kt index dcc1874..cfcbc26 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/EditDrivingActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/account/authperson/EditDrivingActivity.kt @@ -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() { * 根据车牌号查询车辆信任 * @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() { override fun onSuccess(t: CommonResponseBean) { 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) } })) } diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/CarDetailActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/CarDetailActivity.kt index a3054b4..4daaa4f 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/CarDetailActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/CarDetailActivity.kt @@ -220,7 +220,7 @@ class CarDetailActivity : BaseActivity(), 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(), 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 diff --git a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/PersonInfoActivity.kt b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/PersonInfoActivity.kt index 30dbd96..d98a7fc 100644 --- a/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/PersonInfoActivity.kt +++ b/app/src/main/java/com/arpa/hndahesudintocctmsdriver/ui/mine/activity/PersonInfoActivity.kt @@ -228,7 +228,7 @@ class PersonInfoActivity : BaseActivity(), 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(), 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 diff --git a/mylibrary/src/main/java/com/arpa/mylibrary/pop/PopNorBottomPic.kt b/mylibrary/src/main/java/com/arpa/mylibrary/pop/PopNorBottomPic.kt index 3debc3a..6693542 100644 --- a/mylibrary/src/main/java/com/arpa/mylibrary/pop/PopNorBottomPic.kt +++ b/mylibrary/src/main/java/com/arpa/mylibrary/pop/PopNorBottomPic.kt @@ -97,7 +97,7 @@ class PopNorBottomPic( .setCompressEngine(ImageFileCompressEngine()) .isPreviewImage(true) .isMaxSelectEnabledMask(true) -// .setMaxSelectNum(1) + .setMaxSelectNum(1) // .setSelectionMode(SelectModeConfig.SINGLE) // .isDirectReturnSingle(true) .isGif(false)