From a53d5553cd306452eed625c143d8e5c69985b8fc Mon Sep 17 00:00:00 2001 From: lijia Date: Tue, 16 Apr 2024 17:21:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E7=89=8C=E5=8F=B7=E7=A0=81=E8=AF=86?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 12 +- .../java/com/dahe/gldriver/bean/OcrBean.kt | 10 + .../callback/OnOcrPicResultListener.kt | 5 + .../ui/account/authteam/EditCaTeamActivity.kt | 456 +++++++++++ .../com/dahe/gldriver/ui/mine/MineFragment.kt | 11 +- ...rTeamActivity.kt => CarTeamManActivity.kt} | 7 +- .../ui/mine/activity/CarsManActivity.kt | 16 +- .../waybill/activity/WaybillUpPicActivity.kt | 46 +- .../java/com/dahe/gldriver/utils/OcrUtils.kt | 106 ++- .../res/layout/activity_auth_team_edit.xml | 754 ++++++++++++++++++ app/src/main/res/layout/fragment_mine.xml | 2 +- 11 files changed, 1317 insertions(+), 108 deletions(-) create mode 100644 app/src/main/java/com/dahe/gldriver/ui/account/authteam/EditCaTeamActivity.kt rename app/src/main/java/com/dahe/gldriver/ui/mine/activity/{CarTeamActivity.kt => CarTeamManActivity.kt} (95%) create mode 100644 app/src/main/res/layout/activity_auth_team_edit.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d974c74..5a9cf45 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -250,6 +250,11 @@ android:configChanges="keyboardHidden|orientation|locale" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan|stateHidden" /> + @@ -347,7 +352,7 @@ android:windowSoftInputMode="adjustPan|stateHidden" /> @@ -391,10 +396,11 @@ + android:launchMode="singleTask" + android:screenOrientation="portrait"> + diff --git a/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt b/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt index 98913db..c27f1c3 100644 --- a/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt +++ b/app/src/main/java/com/dahe/gldriver/bean/OcrBean.kt @@ -18,6 +18,7 @@ data class OcrPersonBean( data class Data( val face: Face, val back: Back, + val info: List, //银行卡 val bankName: String, @@ -59,6 +60,15 @@ data class Face( ) +data class CarInfo( + val key: String, + val key_loc: String, + val key_prob: String, + val value: String, + val value_loc: String, + val value_prob: String +) + data class DataX( var address: String = "", val birthDate: String = "", diff --git a/app/src/main/java/com/dahe/gldriver/callback/OnOcrPicResultListener.kt b/app/src/main/java/com/dahe/gldriver/callback/OnOcrPicResultListener.kt index a112025..d6e79cc 100644 --- a/app/src/main/java/com/dahe/gldriver/callback/OnOcrPicResultListener.kt +++ b/app/src/main/java/com/dahe/gldriver/callback/OnOcrPicResultListener.kt @@ -13,6 +13,11 @@ fun interface OnOcrPicResultListener { fun onSuccResult(picPath: PicPath, result: OcrPersonBean?) } + +fun interface OnOcrCarNumListener { + fun onSuccResult(carNum: String) +} + data class PicPath( var locPic: String, var picPath: String ) \ No newline at end of file diff --git a/app/src/main/java/com/dahe/gldriver/ui/account/authteam/EditCaTeamActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/account/authteam/EditCaTeamActivity.kt new file mode 100644 index 0000000..1c6f599 --- /dev/null +++ b/app/src/main/java/com/dahe/gldriver/ui/account/authteam/EditCaTeamActivity.kt @@ -0,0 +1,456 @@ +package com.dahe.gldriver.ui.account.authteam + +import android.os.Bundle +import android.view.View +import com.dahe.gldriver.R +import com.dahe.gldriver.bean.AuthTeamBean +import com.dahe.gldriver.bean.OcrPersonBean +import com.dahe.gldriver.databinding.ActivityAuthTeamBinding +import com.dahe.gldriver.net.BaseObserver +import com.dahe.gldriver.net.DataManager +import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.oss.OssServiceUtil +import com.dahe.gldriver.ui.HomeActivity +import com.dahe.gldriver.utils.OcrUtils +import com.dahe.mylibrary.base.BaseActivity +import com.dahe.mylibrary.net.CommonResponseBean +import com.dahe.mylibrary.utils.ActivityUtils +import com.dahe.mylibrary.utils.ImageLoader +import com.dahe.mylibrary.utils.PickerUtils +import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.TimeUtil +import com.dahe.mylibrary.utils.ToastUtils +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers +import io.reactivex.rxjava3.schedulers.Schedulers + +/** + * @ClassName AuthTeamActivity + * @Author john + * @Date 2024/1/25 16:44 + * @Description 个人车队-编辑 + */ +class EditCaTeamActivity : BaseActivity(), View.OnClickListener { + private var checkTeamType = 1 //1代表运输公司,0代表个人车队 + + var ossServiceUtil: OssServiceUtil = OssServiceUtil.getInstance() + + var upComInfoBean: AuthTeamBean = AuthTeamBean("1")//企业车队 + var upPerInfoBean: AuthTeamBean = AuthTeamBean("0")//个人车队 + + override fun initView(savedInstanceState: Bundle?) { + setStatusBarColor(R.color.white) + setTitleBar("身份认证", true) + binding.run { + rgTeam.setOnCheckedChangeListener { _, i -> + changeTeamType(if (i == binding.rbCom.id) 1 else 0) + } + //营业执照选择。ocr识别 + ivBusiness.setOnClickListener { + OcrUtils.getInstance() + .ocrBusinessCard(mContext, this@EditCaTeamActivity) { picPath, result -> + upComInfoBean.businessLicensePhoneUrl = picPath.picPath + + result?.data?.run { + upComInfoBean.businessLicenseCreditCode = creditCode + upComInfoBean.businessLicenseEffectiveStart = + TimeUtil.changeDateNoneFormat(validFromDate) + upComInfoBean.businessLicenseEffectiveEnd = + TimeUtil.changeDateNoneFormat(validToDate) + } + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivBusiness) + } + } + + //运输公司 本人身份证 + ivComFront.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result -> + if (result?.data?.face == null) { + ToastUtils.showToast(mContext, "请选择正确证件照片") + return@ocrPerson + } + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivComFront) + result?.data?.face?.data?.run { + etName.setText(name) + etId.setText(idNumber) + upComInfoBean.run { + idcardNo = idNumber + idcardName = name + idcardSex = if (sex == "男") "1" else "2" + idcardEthnicity = ethnicity + idcardFrontUrl = picPath.picPath + idcardAddress = address + } + } + } + } + + ivComBack.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result -> + if (result?.data?.back == null) { + ToastUtils.showToast(mContext, "请选择正确证件照片") + return@ocrPerson + } + + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivComBack) + result?.data?.back?.data?.run { + upComInfoBean.run { +// idcardEffectiveStart = TimeUtil.changeDateFormat(split[0]) +// idcardEffectiveEnd = if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" + idcardBackUrl = picPath.picPath + } + if (validPeriod.contains("-")) { + val split = validPeriod.split("-") + tvStart.text = TimeUtil.changeDateFormat(split[0]) + tvEnd.text = + if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" + } + if (validPeriod?.contains("长期") == true) { + val split = validPeriod.split("长期") + binding.run { + tvStart.text = + TimeUtil.changeDateFormat(split[0]) + tvEnd.text = "长期" + } + } + } + } + } + //个人车队 本人身份证 + ivFront.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result -> + if (result?.data?.face == null) { + ToastUtils.showToast(mContext, "请选择正确证件照片") + return@ocrPerson + } + + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivFront) + result?.data?.face?.data?.run { + etPerName.setText(name) + etPerId.setText(idNumber) + + upPerInfoBean.run { + idcardNo = idNumber + idcardName = name + idcardSex = if (sex == "男") "1" else "2" + idcardEthnicity = ethnicity + idcardFrontUrl = picPath.picPath + idcardAddress = address + } + } + } + } + + //个人车队 本人身份证 + ivBack.setOnClickListener { + OcrUtils.getInstance() + .ocrPerson(mContext, this@EditCaTeamActivity) { picPath, result -> + if (result?.data?.back == null) { + ToastUtils.showToast(mContext, "请选择正确证件照片") + return@ocrPerson + } + + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivBack) + result?.data?.back?.data?.run { + upPerInfoBean.run { + idcardBackUrl = picPath.picPath + } + if (validPeriod.contains("-")) { + val split = validPeriod.split("-") + tvPerStart.text = TimeUtil.changeDateFormat(split[0]) + tvPerEnd.text = + if (split.size == 2) TimeUtil.changeDateFormat(split[1]) else "" + } + + if (validPeriod?.contains("长期") == true) { + val split = validPeriod.split("长期") + binding.run { + tvPerStart.text = + TimeUtil.changeDateFormat(split[0]) + tvPerEnd.text = "长期" + } + } + } + } + } + + /** + * 个人银行卡 + */ + ivBank.setOnClickListener { + OcrUtils.getInstance() + .ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivBank) + result?.data?.run { + etPerBankId.setText(cardNumber) + tvPerBankName.setText(bankName) + upPerInfoBean.run { + captainBankcardNumber = cardNumber + captainBankcardPhotoUrl = picPath.picPath + } + } + } + } + //道路运输许可证 + ivRoad.setOnClickListener { + OcrUtils.getInstance() + .noOcrUpPic(mContext, this@EditCaTeamActivity) { picPath, ocrResult -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivRoad) + upComInfoBean.roadLicensePhotoUrl = picPath.picPath + } + } + + //公司银行卡 + ivComBank.setOnClickListener { + OcrUtils.getInstance() + .ocrBankCard(mContext, this@EditCaTeamActivity) { picPath, result -> + ImageLoader.getInstance() + .loadRoundImage(mContext, picPath.locPic, 12, ivComBank) + result?.data?.run { + binding.let { + it.etComBankId.setText(cardNumber) + it.etComBankName.setText(bankName) + } + upComInfoBean.run { + captainBankcardNumber = cardNumber + captainBankcardName = bankName + captainBankcardPhotoUrl = picPath.picPath + } + } + } + } + + tvComDate.setOnClickListener { + PickerUtils.getInstance() + .showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date -> + tvComDate.text = date + } + } + + tvPerStart.setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditCaTeamActivity, "请选择起始日期") { date -> + tvPerStart.text = date + } + } + + tvPerEnd.setOnClickListener { + PickerUtils.getInstance() + .showDateSim(this@EditCaTeamActivity, "请选择有效期至") { date -> + tvPerEnd.text = date + } + } + + btnOk.setOnClickListener(this@EditCaTeamActivity) + + /** + * 运输公司身份证开始日期 + */ + tvStart.setOnClickListener { + PickerUtils.getInstance() + .showDate(this@EditCaTeamActivity, "请选择起始日期") { date -> + tvStart.text = date + } + } + + /** + * 运输公司身份证截止日期 + */ + tvEnd.setOnClickListener { + PickerUtils.getInstance().showDateSim(this@EditCaTeamActivity, "请选择有效期至") { + tvEnd.text = it + } + } + } + } + + override fun initDate() { + } + + private fun changeTeamType(type: Int) { + checkTeamType = type + if (1 == checkTeamType) { + binding.llCom.visibility = View.VISIBLE + binding.llPerson.visibility = View.GONE + } else { + binding.llCom.visibility = View.GONE + binding.llPerson.visibility = View.VISIBLE + } + } + + override fun onClick(view: View?) { + super.onClick(view) + when (view?.id) { + binding.btnOk.id -> { + subMit() + } + +// binding.ivBusiness.id -> {} +// binding.ivComFront.id -> {} +// binding.ivComBack.id -> {} +// binding.ivComBank.id -> {} +// binding.tvComDate.id -> {} +// binding.tvPerStart.id -> {} +// binding.ivFront.id -> {} +// binding.ivBack.id -> {} +// binding.ivBank.id -> {} +// binding.ivRoad.id -> {} + + } + } + + private fun subMit() { + binding.run { + if (checkTeamType == 1) {//运输公司 + //道路运输相关 + upComInfoBean.roadLicense = etRootId.text.toString().trim() + upComInfoBean.roadLicenseValidity = tvComDate.text.toString().trim() + //银行卡相关信息 + upComInfoBean.captainBankcardNumber = etComBankId.text.toString().trim() + upComInfoBean.captainBankcardName = etComBankName.text.toString().trim() + //身份证相关信息 + upComInfoBean.idcardName = etName.text.toString().trim() + upComInfoBean.idcardNo = etId.text.toString().trim() + upComInfoBean.idcardEffectiveStart = tvStart.text.toString().trim() + if ("长期" == tvEnd.text.toString().trim()) { + upComInfoBean.idcardIsEndless = "1" + } else { + upComInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim() + } + + if (upComInfoBean.roadLicense.isNullOrEmpty() || upComInfoBean.roadLicenseValidity.isNullOrEmpty() || + upComInfoBean.businessLicensePhoneUrl.isNullOrEmpty() || upComInfoBean.roadLicensePhotoUrl.isNullOrEmpty() || + upComInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() || upComInfoBean.idcardFrontUrl.isNullOrEmpty() || + upComInfoBean.idcardBackUrl.isNullOrEmpty() || + upComInfoBean.captainBankcardNumber.isNullOrEmpty() || upComInfoBean.captainBankcardName.isNullOrEmpty() || + upComInfoBean.idcardName.isNullOrEmpty() || upComInfoBean.idcardNo.isNullOrEmpty() || + upComInfoBean.idcardEffectiveStart.isNullOrEmpty() + ) { + ToastUtils.showToast(mContext, "请完善信息") + return@run + } + + } else { + //身份证相关信息 + upPerInfoBean.idcardNo = etPerId.text.toString().trim() + upPerInfoBean.idcardName = etPerName.text.toString().trim() + upPerInfoBean.idcardEffectiveStart = tvPerStart.text.toString().trim() + if ("长期" == tvPerEnd.text.toString().trim()) { + upPerInfoBean.idcardIsEndless = "1" + } else { + upPerInfoBean.idcardEffectiveEnd = tvEnd.text.toString().trim() + } + //银行卡相关信息 + upPerInfoBean.captainBankcardNumber = etPerBankId.text.toString().trim() + upPerInfoBean.captainBankcardName = tvPerBankName.text.toString().trim() + + + if (upPerInfoBean.idcardNo.isNullOrEmpty() || upPerInfoBean.idcardName.isNullOrEmpty() || + upPerInfoBean.idcardEffectiveStart.isNullOrEmpty() || upPerInfoBean.captainBankcardPhotoUrl.isNullOrEmpty() || + upPerInfoBean.idcardFrontUrl.isNullOrEmpty() || upPerInfoBean.idcardBackUrl.isNullOrEmpty() || + upPerInfoBean.captainBankcardNumber.isNullOrEmpty() || upPerInfoBean.captainBankcardName.isNullOrEmpty() + ) { + ToastUtils.showToast(mContext, "请完善信息") + return@run + } + } + + DataManager.getInstance() + .authenticationCaptain(if (checkTeamType == 1) upComInfoBean else upPerInfoBean) + .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) + .subscribe( + BaseObserver( + mContext, + object : RxHttpCallBack(this@EditCaTeamActivity) { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + ActivityUtils.startActivity(mContext, HomeActivity::class.java) + } + }) + ) + } + + } + + + private fun selBankPic(picType: Int = 0) { + PopsUtils.getInstance().showSimSelPic(mContext) { it -> + ossServiceUtil.run { + asyncPutImage(it[0].realPath, this@EditCaTeamActivity) + setResultCallBack { data, oldPath -> + DataManager.getInstance().recognizeBankCard(oldPath) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + BaseObserver(mContext, + object : RxHttpCallBack(this@EditCaTeamActivity) { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + t.data.data?.run { +// bankInfo.driverBankcardPhotoUrl = oldPath + + binding.let { + it.etComBankId.setText(cardNumber) + it.etComBankName.setText(bankName) + } + } + + } + }) + ) + + } + } + ImageLoader.getInstance() + .loadRoundImage(mContext, it[0].realPath, 12, binding.ivComBank) + } + } + + private fun selPerPic() { + PopsUtils.getInstance().showSimSelPic(mContext) { + + ImageLoader.getInstance().loadRoundImage(mContext, it[0].realPath, 12, binding.ivFront) + + ossServiceUtil.run { + asyncPutImage(it[0].realPath, this@EditCaTeamActivity) + setResultCallBack { data, oldPath -> + DataManager.getInstance().recognizeIdcard(oldPath) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + BaseObserver(mContext, + object : RxHttpCallBack(this@EditCaTeamActivity) { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + t.data.data.face?.data.let { + it?.run { +// perInfoBean.run { +// idcardNo = idNumber +// idcardName = name +// idcardSex = if (sex == "男") "1" else "2" +// } + } + binding.run { + etName.setText(it?.idNumber) + etId.setText(it?.name) + } + } + + } + }) + ) + } + } + } + } +} + diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt index fbe7d6b..f301119 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/mine/MineFragment.kt @@ -6,12 +6,14 @@ import com.dahe.gldriver.R import com.dahe.gldriver.adapter.GridItemAdapter import com.dahe.gldriver.base.WebActivity import com.dahe.gldriver.bean.GridBean +import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.databinding.FragmentMineBinding import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.gldriver.ui.account.authperson.AuthPartyActivity -import com.dahe.gldriver.ui.mine.activity.CarTeamActivity +import com.dahe.gldriver.ui.mine.activity.CarTeamManActivity import com.dahe.gldriver.ui.mine.activity.CarsManActivity import com.dahe.gldriver.ui.mine.activity.ComProActivity import com.dahe.gldriver.ui.mine.activity.DriverTeamsActivity @@ -29,14 +31,12 @@ import com.dahe.mylibrary.base.BaseFragment import com.dahe.mylibrary.callback.RefreshCallBack import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.ActivityUtils -import com.dahe.mylibrary.utils.BaseUtils import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.PhoneFormatCheckUtils +import com.dahe.mylibrary.utils.PopsUtils import com.dahe.mylibrary.utils.ToastUtils -import com.tencent.bugly.crashreport.CrashReport import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers -import kotlin.system.exitProcess class MineFragment : BaseFragment(), View.OnClickListener, RefreshCallBack { private val tools = mutableListOf( @@ -107,7 +107,7 @@ class MineFragment : BaseFragment(), View.OnClickListener, when (pos) { 0 -> { if (SPUtils.instance.getUserInfo(mContext)?.isCarCaptain == "1") {//车队长 - ActivityUtils.startActivity(mContext, CarTeamActivity::class.java) + ActivityUtils.startActivity(mContext, CarTeamManActivity::class.java) } else {//司机 ActivityUtils.startActivity(mContext, DriverTeamsActivity::class.java) } @@ -176,7 +176,6 @@ class MineFragment : BaseFragment(), View.OnClickListener, 7 -> { ActivityUtils.startActivity(mContext,SettingActivity::class.java) -// exitProcess(0) } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamManActivity.kt similarity index 95% rename from app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamActivity.kt rename to app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamManActivity.kt index 50145c5..782217a 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarTeamManActivity.kt @@ -15,13 +15,11 @@ import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.ui.mine.InviteRecordActivity import com.dahe.gldriver.ui.mine.fragment.CarsManFragment import com.dahe.gldriver.ui.mine.fragment.DriversManFragment -import com.dahe.gldriver.ui.waybill.fragment.AllWaybillFragment import com.dahe.gldriver.utils.SPUtils import com.dahe.mylibrary.base.BaseActivity import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ImageLoader -import com.dahe.mylibrary.utils.ToastUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers import net.lucode.hackware.magicindicator.FragmentContainerHelper @@ -40,7 +38,7 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorT * @Date 2024/2/6 16:38 * @Description 车队长-车队管理 */ -class CarTeamActivity : BaseActivity() { +class CarTeamManActivity : BaseActivity() { private val mFragmentContainerHelper = FragmentContainerHelper() var mFragments = mutableListOf() @@ -127,7 +125,8 @@ class CarTeamActivity : BaseActivity() { val data = t.data binding.run { tvCapName.text = data.captainName - tvStatu.text = if (data.isRealname == "0") "未实名" else "已实名" + tvStatu.text = + if (data.auditStatus == "100002") "审核中" else if (data.auditStatus == "100003") "审核通过" else if (data.auditStatus == "100001") "待认证" else "待认证" ImageLoader.getInstance().loadCircleImage(mContext, data.avatar, ivHead) } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt index bf26bdd..4450e12 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/mine/activity/CarsManActivity.kt @@ -10,10 +10,12 @@ import com.dahe.gldriver.R import com.dahe.gldriver.adapter.CarsAdapter import com.dahe.gldriver.base.AppConfig import com.dahe.gldriver.bean.CarBean +import com.dahe.gldriver.bean.OcrPersonBean import com.dahe.gldriver.databinding.ActivityCarsManBinding import com.dahe.gldriver.net.BaseObserver import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack +import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.gldriver.ui.account.authperson.AuthDrivingActivity import com.dahe.gldriver.utils.CommonPopUtils import com.dahe.mylibrary.base.BaseActivity @@ -21,7 +23,9 @@ import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.recycleviewswipe.RecycleViewDivider import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.ConvertUtils +import com.dahe.mylibrary.utils.ImageLoader import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.ToastUtils import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.schedulers.Schedulers @@ -83,18 +87,6 @@ class CarsManActivity : BaseActivity() { } btnOk.setOnClickListener { -// PopsUtils.getInstance().showSimSelPic(mContext){ - // DataManager.getInstance().recognizeCarNumber(oldPath) -// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) -// .subscribe(BaseObserver(mContext,object : RxHttpCallBack(){ -// override fun onSuccess(t: CommonResponseBean) { -// super.onSuccess(t) -// println("fff") -// } -// })) -// } - - ActivityUtils.startActivity(mContext, AuthDrivingActivity::class.java) } } diff --git a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt index b785e93..ba4dd35 100644 --- a/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt +++ b/app/src/main/java/com/dahe/gldriver/ui/waybill/activity/WaybillUpPicActivity.kt @@ -15,6 +15,7 @@ import com.dahe.gldriver.net.DataManager import com.dahe.gldriver.net.RxHttpCallBack import com.dahe.gldriver.oss.OssServiceUtil import com.dahe.gldriver.utils.GDLocationUtils +import com.dahe.gldriver.utils.OcrUtils import com.dahe.gldriver.utils.OrderUtils import com.dahe.mylibrary.adapter.GridImageAdapter import com.dahe.mylibrary.adapter.GridImageAdapter.OnItemClickListener @@ -23,6 +24,7 @@ import com.dahe.mylibrary.net.CommonResponseBean import com.dahe.mylibrary.utils.ActivityUtils import com.dahe.mylibrary.utils.LoadingUtils import com.dahe.mylibrary.utils.PopsUtils +import com.dahe.mylibrary.utils.ToastUtils import com.dahe.mylibrary.weight.FullyGridLayoutManager import com.dahe.mylibrary.weight.GlideEngine import com.luck.picture.lib.basic.PictureSelector @@ -92,25 +94,25 @@ class WaybillUpPicActivity : BaseActivity() { OssServiceUtil.getInstance().run { asyncPutImage(it[0].realPath, this@WaybillUpPicActivity) setResultCallBack { data, oldPath -> -// DataManager.getInstance().recognizeCarNumber(oldPath) -// .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) -// .subscribe(BaseObserver(mContext,object : RxHttpCallBack(){ -// override fun onSuccess(t: CommonResponseBean) { -// super.onSuccess(t) -// println("fff") -// } -// })) - - picBean = WaybillPhoto() - picBean.run { - photoUrl = oldPath - this.type = if (type == 1) "1" else "2" - } - if (upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" } == null) { - upBean.waybillPhotoList.add(picBean) - } else { - upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl = - oldPath + OcrUtils.getInstance().ocrCarNumber(mContext, oldPath, this@WaybillUpPicActivity) { carNum -> + if (!carNum.isNullOrEmpty()) { + picBean = WaybillPhoto() + picBean.run { + photoUrl = oldPath + this.type = if (type == 1) "1" else "2" + } + if (upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" } == null) { + upBean.waybillPhotoList.add(picBean) + } else { + upBean.waybillPhotoList.find { it.type == if (type == 1) "1" else "2" }!!.photoUrl = + oldPath + } + } else { + ToastUtils.showToast( + mContext, + "未识别出车牌号码,请重新拍摄" + ) + } } } } @@ -266,7 +268,8 @@ class WaybillUpPicActivity : BaseActivity() { ActivityUtils.startActivity( mContext, WaybillSuccActivity::class.java, - intent.extras) + intent.extras + ) //装货成功-开启轨迹上传 OrderUtils.getInstance().upLocation(mContext) } else { @@ -274,7 +277,8 @@ class WaybillUpPicActivity : BaseActivity() { ActivityUtils.startActivity( mContext, WaybillSuccActivity::class.java, - intent.extras) + intent.extras + ) } } })) diff --git a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt index e3f96e6..e833e87 100644 --- a/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt +++ b/app/src/main/java/com/dahe/gldriver/utils/OcrUtils.kt @@ -3,6 +3,7 @@ package com.dahe.gldriver.utils import android.content.Context import androidx.appcompat.app.AppCompatActivity import com.dahe.gldriver.bean.OcrPersonBean +import com.dahe.gldriver.callback.OnOcrCarNumListener import com.dahe.gldriver.callback.OnOcrPicResultListener import com.dahe.gldriver.callback.PicPath import com.dahe.gldriver.net.BaseObserver @@ -60,7 +61,7 @@ class OcrUtils private constructor() { LoadingUtils.instance.dissLoading() if (t.code == 500) { // if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast(mContext, "图片识别失败,请重新上传") + ToastUtils.showToast(mContext, "图片识别失败,请重新上传") // } else { // ToastUtils.showToast(mContext, t.msg) // } @@ -109,10 +110,10 @@ class OcrUtils private constructor() { LoadingUtils.instance.dissLoading() if (t.code == 500) { // if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast( - mContext, - "图片识别失败,请重新上传" - ) + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) // } else { // ToastUtils.showToast(mContext, t.msg) // } @@ -167,10 +168,10 @@ class OcrUtils private constructor() { LoadingUtils.instance.dissLoading() if (t.code == 500) { // if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast( - mContext, - "图片识别失败,请重新上传" - ) + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) // } else { // ToastUtils.showToast(mContext, t.msg) // } @@ -223,10 +224,10 @@ class OcrUtils private constructor() { LoadingUtils.instance.dissLoading() if (t.code == 500) { // if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast( - mContext, - "图片识别失败,请重新上传" - ) + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) // } else { // ToastUtils.showToast(mContext, t.msg) // } @@ -279,10 +280,10 @@ class OcrUtils private constructor() { LoadingUtils.instance.dissLoading() if (t.code == 500) { // if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast( - mContext, - "图片识别失败,请重新上传" - ) + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) // } else { // ToastUtils.showToast(mContext, t.msg) // } @@ -300,54 +301,37 @@ class OcrUtils private constructor() { * */ fun ocrCarNumber( context: Context, + picPath: String, activity: AppCompatActivity, - listener: OnOcrPicResultListener + listener: OnOcrCarNumListener ) { - PopsUtils.getInstance().showSimSelPic(context) { result -> - //上传oss得到图片地址 - OssServiceUtil.getInstance().run { - asyncPutImage(result[0].realPath, activity) - setResultCallBack { data, oldPath -> - DataManager.getInstance().recognizeCarNumber(oldPath) - .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) - .subscribe( - BaseObserver( - context, - object : RxHttpCallBack(activity) { - override fun onSuccess(t: CommonResponseBean) { - super.onSuccess(t) - t.data?.let { - listener.onSuccResult( - PicPath( - result[0].realPath, - oldPath - ), it - ) - } - } + DataManager.getInstance().recognizeCarNumber(picPath) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe( + BaseObserver(activity, + object : RxHttpCallBack() { + override fun onSuccess(t: CommonResponseBean) { + super.onSuccess(t) + if (t.data.data.info != null && t.data.data.info.isNotEmpty()) + listener.onSuccResult(t.data.data.info[0].value) + } - override fun onCodeError( - mContext: Context?, - t: CommonResponseBean - ) { + override fun onCodeError( + mContext: Context?, + t: CommonResponseBean + ) { // super.onCodeError(mContext, t) - LoadingUtils.instance.dissLoading() - if (t.code == 500) { -// if (t.msg.contains("code: 400, The image type does not match the API operation")) { - ToastUtils.showToast( - mContext, - "图片识别失败,请重新上传" - ) -// } else { -// ToastUtils.showToast(mContext, t.msg) -// } - } - } - }) - ) - } - } - } + LoadingUtils.instance.dissLoading() + if (t.code == 500) { + ToastUtils.showToast( + mContext, + "图片识别失败,请重新上传" + ) + } + } + }) + ) } diff --git a/app/src/main/res/layout/activity_auth_team_edit.xml b/app/src/main/res/layout/activity_auth_team_edit.xml new file mode 100644 index 0000000..6c52002 --- /dev/null +++ b/app/src/main/res/layout/activity_auth_team_edit.xml @@ -0,0 +1,754 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 2a16650..0d7819a 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -55,7 +55,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" - android:text="张学友" + tools:text="张学友" android:textColor="@color/black" android:textSize="@dimen/sp_18" android:textStyle="bold" />